/** * 印 this 的時候,會調用 Object.toString() * 匿名類別的 this:會先調用自己匿名類別的 toString,沒有才去 Object.toString * Lambda 的 this:會先調用「當下」類別的 toString,沒有才去 Object.toString */ public class ThisTest { Animal a1 = new Animal() { @Override public void m(String str) { System.out.println(this); } // @Override // public String toString() { // return "anonymous toString"; // } }; Animal a2 = s -> System.out.println(this); // @Override // public String toString() { // return "this toString"; // } public static void main(String[] args) { ThisTest thisTest = new ThisTest(); thisTest.a1.m("xxx"); thisTest.a1.m("aaa"); thisTest.a2.m("ooo"); thisTest.a2.m("bbb"); } @FunctionalInterface public interface Animal { void m(String str); } }
2022年8月11日 星期四
lambda 的 this (java8 八)
訂閱:
文章 (Atom)