[英]RK1. what is the behavior of "this" key word in Anonymous inner class and lambda expression
public interface Interf {
public void m1();
}
public class Test2 {
int x = 10;
public void m2() {
Interf interf = new Interf() {
int x = 20;
@Override
public void m1() {
System.out.println(this.x);
}
};
interf.m1();
}
public static void main(String[] args) {
Test2 aTest2 = new Test2();
aTest2.m2();//....................................what will get..?
}
}
public class Test3 {
int x=10;
public void m2() {
Interf interf=()->{
int x=20;
System.out.println(this.x);
};
interf.m1();
}
public static void main(String[] args) {
Test3 a=new Test3();
a.m2();
}
}
**->**Anonymous inner class this key word always refers current class inside local variable. **->**Anonymous inner class 这个关键字总是引用局部变量中当前的class。 **->**Lambda expression refers current class instance variable instead of local variable **->**Lambda 表达式引用当前 class 实例变量而不是局部变量
**-> Anonymous inner class this key word always refers current class inside local variable. **-> Anonymous inner class 这个关键字总是引用局部变量中的current class。 **-> Lambda expression refers current class instance variable instead of local variable **-> Lambda 表达式引用当前 class 实例变量而不是局部变量
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.