#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);
и в этом случае вам не нужно будет явно приводить возвращаемый объект.