我发现我们不能在内部类的方法中使用非最终变量,但是当我自己做一个实验时,我得到了不同的结果
在StackOverflow上几乎没有答案描述原因Why Java inner classes require "final" outer instance variables?,我理解这个概念,并且自己在IntelliJ中使用两个类进行了尝试
Driver
类
public class Driver{
public static void main(String[] args) {
String outsideVar = "anything";
InterfaceClassTest object1 = new InterfaceClassTest() {
@Override
public void InterfaceFunction() {
System.out.println(outsideVar);
}
};
object1.InterfaceFunction();
};}
InterfaceClassTest
类
public interface InterfaceClassTest {
public abstract void InterfaceFunction();
}
我希望上面的代码会出错,但是效果很好,所以我怎么能在内部类的方法中使用outsideVar