这是没有实现接口的最终类:
@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为什么可以创建它?
答案 0 :(得分:1)
这是因为spring使用反射来做到这一点,可以克服这些限制。这就是为什么spring可以在最终对象,可以到达私有成员等的对象上创建代理的原因。