码迷,mamicode.com
首页 > 其他好文 > 详细

测试匿名内部类和lambda表达式的this“指针”

时间:2020-07-25 09:49:50      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:print   rgs   code   err   ide   tcl   this指针   str   测试   

/**
 * 测试匿名内部类和lambda表达式的this“指针”
 * 结论:
 * lambda表达式虽然也会构建一个类,但是内部却没有自己的this指针,
 * 当在内部使用this指针时,代指的是表达式外部对应的对象
 */
public class Test {
    public static void main(String[] args) {
        new Test().test1();
    }

    void test1(){
        System.out.println("Test对象hashCode=" + this.hashCode());
        System.out.println("------------------------------");
        f(()->{
            System.out.println("lambda内的this:" + this.hashCode());
        });
        System.out.println("--------------");
        f(new Inter1() {
            @Override
            public void func() {
                System.out.println("内部类内的this:" + this.hashCode());
            }
        });
    }

    private static void f(Inter1 i) {
        i.func();
        System.out.println("i.hashCode=" + i.hashCode());
        System.out.println("i所属class=" + i.getClass());
    }

}

interface Inter1{
    void func();
}

 

测试匿名内部类和lambda表达式的this“指针”

标签:print   rgs   code   err   ide   tcl   this指针   str   测试   

原文地址:https://www.cnblogs.com/qyxfzmbz/p/13375123.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!