测试匿名内部类和lambda表达式的this“指针”
Posted qyxfzmbz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了测试匿名内部类和lambda表达式的this“指针”相关的知识,希望对你有一定的参考价值。
/** * 测试匿名内部类和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“指针”的主要内容,如果未能解决你的问题,请参考以下文章