变量 r 可能尚未初始化

2024-03-02

有一个非常简单的程序:

public class A {
    public static void main(String[] p) {
        final Runnable r = new Runnable() {
            public void run() {
                System.out.println(r);
            }
        };
        r.run();
    }
}

这给出:

$ javac A.java 
A.java:6: variable r might not have been initialized
                System.out.println(r);
                                   ^
1 error
  1. Why?
  2. Runnable 如何引用指向它的变量?

(在真实的代码中,还有一个级别(侦听器),并通过引用this不起作用)


在这种情况下,可以使用“this”来避免编译错误:

    final Runnable r = new Runnable() {
        public void run() {
            System.out.println(this); // Avoid compilation error by using this
        }
    };
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

变量 r 可能尚未初始化 的相关文章

随机推荐