JavaSE-22.3.1【体验方法引用、方法引用符】
作者:互联网
1 package day13.lesson3.p2; 2 3 4 /* 5 3.2 方法引用符 6 7 方法引用符 8 :: 该符号为引用运算符,而它所在的表达式被称为方法引用 9 10 推导与省略 11 如果使用Lambda,那么根据“可推导就是可省略”的原则,无需指定参数类型,也无需指定的重载形式,它们都将被自动推导 12 如果使用方法引用,也是同样可以根据上下文进行推导 13 方法引用是Lambda的孪生兄弟 14 */ 15 public class PrintableDemo { 16 public static void main(String[] args) { 17 //Lambda 18 usePrintable(i -> System.out.println(i)); 19 20 //方法引用 21 usePrintable(System.out::println); 22 } 23 24 private static void usePrintable(Printable p){ 25 p.printInt(666); 26 } 27 } 28 29 interface Printable{ 30 void printInt(int i); 31 }
1 package day13.lesson3.p1; 2 3 /* 4 3 方法引用 5 6 3.1 体验方法引用 7 8 方法引用的出现原因 9 在使用Lambda表达式的时候,我们实际上传递进去的代码就是一种解决方案:拿参数做操作 10 那么考虑一种情况: 11 如果我们在Lambda中所指定的操作方案,已经有地方存在相同方案,那是否还有必要再写重复逻辑呢?答案肯定是没有必要 12 那我们又是如何使用已经存在的方案的呢? 13 这就是我们要讲解的方法引用,我们是通过方法引用来使用已经存在的方案 14 */ 15 public class PrintableDemo { 16 public static void main(String[] args) { 17 /*usePrintable((String s)->{ 18 System.out.println(s); 19 });*/ 20 usePrintable(s -> System.out.println(s)); 21 22 System.out.println("爱生活爱夹哇"); 23 24 //方法引用符:: 25 usePrintable(System.out::println); 26 //可推导的就是可省略的 27 } 28 29 private static void usePrintable(Printable p){ 30 p.printString("爱生活爱夹哇"); 31 } 32 } 33 34 interface Printable{ 35 void printString(String s); //抽象方法 36 } 37 38 class PrintableImpl implements Printable{ 39 @Override 40 public void printString(String s) { 41 System.out.println(s); 42 } 43 }
标签:void,System,usePrintable,22.3,引用,println,JavaSE,out 来源: https://www.cnblogs.com/yppah/p/14875254.html