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