JDK8新特性:方法引用

进一步简化Lambda表达式

一、静态方法的引用

格式: 类名::静态方法

使用场景:如果某个Lambda表达式里只是调用一个静态方法,并且前后参数的形式一致,就可以使用静态方法引用。

之前使用Lambda简化:

现在我们创建一个类:

然后简化:

二、实例方法的引用

格式:  对象名::实例方法

使用场景:如果某个Lambda表达式里只是调用一个实例方法,并且前后参数的形式一致,就可以使用实例方法引用。

创建一个实例方法:

然后简化:

三、特定类型方法的引用

格式: 类型::方法

使用场景:如果某个Lambda表达式里只是调用一个实例方法,并且前面参数列表中的第一个参数是作为方法的主调,后面的所有参数都是作为该实例方法入参的,则此时就可以使用特定类型的方法引用。

import java.util.Arrays;
import java.util.Comparator;

public class Test2 {
    public static void main(String[] args) {
        String[] names = {"apple","deep","ban","Abc","BBoy"};
        //对数组进行排序
        Arrays.sort(names);
        System.out.println(Arrays.toString(names));  //Abc BBoy apple ban deep 默认按照字符串的首字符编号进行升序排序
        //需求:要求忽略首字符大小写进行排序
//        Arrays.sort(names, new Comparator<String>() {
//            @Override
//            public int compare(String o1, String o2) {
//                //制定比较规则
//                return o1.compareToIgnoreCase(o2); //自带的比较方法
//            }
//        });
//        System.out.println(Arrays.toString(names));

简化上面那行代码的话,其实idea有快捷键:

然后再来一次:

最终简化为这样:

四、构造器引用

 格式: 类名::new

使用场景:如果某个Lambda表达式里只是在创建对象,并且前后参数情况一致,就可以使用构造器引用。

1.创建接口的匿名内部类对象

2.接收返回的对象

简化后:

再次简化:

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何仙鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值