经典的Java谜题-匿名类谜题

2019-08-17  本文已影响0人  草叶oo0

下面的代码执行时会有什么样的输出呢,4、5、6还是10?

public class MeaningOfThis
{
    public final int value = 4;
    public void doIt()
    {
        int value = 6;
        Runnable r = new Runnable(){
            public final int value = 5;
            public void run(){
                int value = 10;
                System.out.println(this.value);
            }
        };
        r.run(); 
    }
    public static void main(String...args)
    {       
        MeaningOfThis m = new MeaningOfThis();
        m.doIt(); // 这一行的输出是什么?  
    }
}

答案是5,因为this指的是包含它的Runnable,而不是外面的类MeaningOfThis。

来源:java8实战

上一篇 下一篇

猜你喜欢

热点阅读