如何在匿名内部类中访问外部类的成员变量

avatar
作者
筋斗云
阅读量:0

在Java中,匿名内部类可以直接访问外部类的成员变量,只要这些变量是final或者是effectively final。这意味着它们在初始化后不会再改变其值。

以下是一个示例:

public class OuterClass {     private String outerVar = "I am from Outer Class";      public void createAnonymousInnerClass() {         final String localVar = "I am a local variable";          Runnable runnable = new Runnable() {             @Override             public void run() {                 System.out.println("Accessing outer class member: " + outerVar);                 System.out.println("Accessing effectively final local variable: " + localVar);             }         };          runnable.run();     }      public static void main(String[] args) {         OuterClass outer = new OuterClass();         outer.createAnonymousInnerClass();     } } 

在这个例子中,我们创建了一个匿名内部类Runnable,并在其run方法中访问了外部类的成员变量outerVar和一个effectively final的局部变量localVar。当我们运行这个程序时,它将输出:

Accessing outer class member: I am from Outer Class Accessing effectively final local variable: I am a local variable 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!