![](/img/trans.png)
[英]How to access local variables in anonymous inner actionListener class and actionPerformed method?
[英]Why JDK7 not allow method local Inner Class to access its own method's local variables
class MyOuter2{
private String x;
void doStuff(){
int mloc= 100;
x ="Outer class variable";
class MyInner{
public void seeOuter(){
System.out.println("Access both: " + x+" and " + mloc);
System.out.println("Inner class ref is " + this);
System.out.println("Outer class ref is " + MyOuter2.this);
}
}
MyInner MethodInnerClass = new MyInner();
MethodInnerClass.seeOuter();
}
}
public class InnerClass {
public static void main(String[] args) {
MyOuter2 outer = new MyOuter2();
outer.doStuff();
}
}
在此代码中,我在本地MyInner类的方法中使用doStuff()的变量mloc,编译器将编译此代码,并通过JDK8运行此代码。
在Java SE 8中,局部类可以访问final或有效的final的局部变量和封闭块的参数。 变量或参数的值在初始化后再也不会更改,因此实际上是final 。
方法本地内部类变量可以在Java 8中访问,但不能在Java 7中访问。我使用Java版本“ 1.8.0_31”,并且可以编译。 但是它不能在Java 7中编译。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.