标签: java closures inner-classes anonymous-class
匿名内部类的实例是否存储了所有可访问的最终变量,或者它是否仅存储在所述内部类中使用的变量? (即它是否执行某种分析?据我所知,无论如何都存储了对父实例的引用。)
答案 0 :(得分:1)
无论如何都存储对封闭类的引用。
最终变量存储为副本,但前提是您实际在内部类的某处引用它们。这并不需要任何额外的“分析”,但可以在正常的编译步骤中完成(编译器必须解决变量,因此它也可以输出代码来设置副本)。