要从Java中的匿名内部类中获取对封闭类的引用,可以使用以下方法:
this
来引用封闭类的实例。例如:public class OuterClass {
private int value = 10;
public void displayValue() {
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("Value from OuterClass: " + value);
}
};
runnable.run();
}
}
在上面的例子中,匿名内部类Runnable
中的run()
方法可以使用value
变量,因为它引用了封闭类OuterClass
的实例。
public class OuterClass {
private int value = 10;
public void displayValue() {
Runnable runnable = () -> System.out.println("Value from OuterClass: " + value);
runnable.run();
}
}
在上面的例子中,Lambda表达式() -> System.out.println("Value from OuterClass: " + value)
可以直接访问封闭类OuterClass
的实例变量value
。
总之,要从Java中的匿名内部类中获取对封闭类的引用,可以使用关键字this
或Lambda表达式。这两种方法都可以让匿名内部类访问封闭类的实例变量和方法。
领取专属 10元无门槛券
手把手带您无忧上云