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

   2024-09-30 2670
核心提示:在Java中,匿名内部类可以直接访问外部类的成员变量,只要这些变量是final或者是effectively final。这意味着它们在初始化后不会

在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 ClassAccessing effectively final local variable: I am a local variable

 
举报打赏
 
更多>同类维修大全
推荐图文
推荐维修大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号