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

@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可以为最终对象,到达私有成员等的对象创建代理。

09-18 10:05