编程语言
首页 > 编程语言> > JavaSE-22.3.1【体验方法引用、方法引用符】

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