Приведение типов в весенней программе

#spring

#spring

Вопрос:

Я столкнулся с проблемой в программе spring, проблема в том, почему приведение типов применяется в приложении spring? ниже приведена программа для справки.

 public class Test {
  

    public static void main(String[] args) {
          
        ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
          Hello obj= (Hello)context.getBean("hello");
          obj.getMessge();
       }
    
    }
  

Комментарии:

1. Это проблема или вопрос ?

Ответ №1:

getBean(String) Метод возвращает объект указанного типа Object . Поскольку вы знаете, что метод, с помощью которого вы аннотировали, @Bean(name = "hello") возвращает экземпляр Hello , вы можете безопасно привести возвращаемое значение getBean к Hello .

Ответ №2:

Object getBean(String name) возвращает экземпляр типа Object; следовательно, вы должны привести его к тому, что вы ожидаете, что он вернет.

<T> T getBean(String name, Class<T> requiredType) в качестве альтернативы можно использовать перегруженный метод, и он вернет объект типа T .

Вы можете изменить свой код следующим образом:

 Hello obj = context.getBean("hello", Hello.class);
  

и в этом случае вам не нужно будет явно приводить возвращаемый объект.