首页 > 代码库 > Java:匿名内部类不能引用外部类中非final类型的变量

Java:匿名内部类不能引用外部类中非final类型的变量

  在使用Java局部内部类或者匿名内部类时,若该类调用了所在方法的局部变量,则该局部变量必须使用final关键字来修饰,否则将会出现编译错误“Cannot refer to a non-final variable * inside an inner class defined in a different method”。
  不知道是不是因为我的编程风格问题,这个错误我经常遇到。而且我在学Java的时候不记得书上有说这个问题。所以这次拿出来百度一下。
  简单百度了一下,好像没什么详细的解释,大概是牵扯到JVM和编译原理的。基础很重要。这个问题留着以后深入思考。

Java:匿名内部类不能引用外部类中非final类型的变量