spring程序中的类型铸造

fcy6dtqo  于 2023-08-02  发布在  Spring
关注(0)|答案(3)|浏览(88)

我在 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();
       }
    
    }

字符串

svmlkihl

svmlkihl1#

getBean(String)方法返回一个类型为Object的对象。因为您知道用@Bean(name = "hello")注解的方法返回Hello的示例,所以可以安全地将getBean的返回值强制转换为Hello

yeotifhr

yeotifhr2#

Object getBean(String name)返回Object类型的示例;因此,您必须将其转换为您期望它返回任何值。
<T> T getBean(String name, Class<T> requiredType)重载方法也可以使用,它将返回类型为T的对象。
您可以按如下方式更改代码:

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

字符串
在这种情况下,您不需要显式地转换返回的对象。

euoag5mw

euoag5mw3#

getBean()方法返回一个对象类型。由于您知道用@Bean(name =“hello”)注解的方法返回Hello的示例,因此可以安全地将getBean的返回值强制转换为Hello。

相关问题