Spring可以创建没有实现接口的最终类

时间:2019-03-08 16:26:38

标签: java spring

这是没有实现接口的最终类​​:

@Component("finalClass")
public final class FinalClass {
    public String hello(){
        return "hello";
    }
}

这是测试类:

 public class Test {
    public static void main(String[] args) {
        ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
        FinalClass finalClass = (FinalClass) ac.getBean("finalClass");
        System.out.println(finalClass.hello());
    }
}

它可以运行。 最终类不能扩展,并且不实现任何接口。 Spring为什么可以创建它?

1 个答案:

答案 0 :(得分:1)

这是因为spring使用反射来做到这一点,可以克服这些限制。这就是为什么spring可以在最终对象,可以到达私有成员等的对象上创建代理的原因。