为什么在内部类的方法内部引用外部类非最终变量不再给出错误

时间:2019-01-24 17:29:50

标签: java class final

我发现我们不能在内部类的方法中使用非最终变量,但是当我自己做一个实验时,我得到了不同的结果

在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

0 个答案:

没有答案