JavaSE-22.3.1【体验方法引用、方法引用符】

 
复制代码
 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 }
复制代码

 

 

 

 

复制代码
 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 }
复制代码

 

 

posted @   yub4by  阅读(62)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示