方法引用概述

方法引用:把已经有的方法拿过来用,但做函数式接口抽象方法的方法体

       Integer[] arr={4,5,2,1,3,6};
  //匿名内部类
//        Arrays.sort(arr, new Comparator<Integer>() {
//            @Override
//            public int compare(Integer o1, Integer o2) {
//                return o2-o1;
//            }
//        });
        //lambda表达式
//        Arrays.sort(arr,(o1, o2) ->
//            o2-o1);
//        System.out.println(Arrays.toString(arr));
        //方法引用
        //1.引用处必须是函数式接口
        //2.被引用方法必须已经存在
        //3.被饮用方法的形参和返回值需要跟抽象方法的形参和返回值保持一致
        //4.被引用方法的功能需要满足当前要求
        Arrays.sort(arr,text16::subtraction);
        System.out.println(Arrays.toString(arr));

 }
public static int subtraction(Integer o1,Integer o2){
        return o1-o2;
}
}

总结

1.什么是方法引用?
把已经存在的方法拿过来用,当做函数式接口中抽象方法的方法体

2.::是什么符号?
方法引用符
3.方法引用时要注意什么?
需要有函数式接口
被引用方法必须已经存在
被引用方法的形参和返回值需要跟抽象方法保持一致
被引用方法的功能要满足当前的需求

方法引用的分类

1.引用静态方法:

格式:类名::静态方法        

练习

  package lianxi;
  
  import java.util.ArrayList;
  import java.util.Collections;
  
  public class text17 {
      public static void main(String[] args) {
  
  
      ArrayList<String> lis=new ArrayList<>();
      Collections.addAll(lis,"1","2","3","4","5");
      lis.stream().map(Integer::parseInt).forEach(s-> System.out.println(s));
  
  }
     }

2.引用成员方法

格式:对象::成员方法
1. 其他类:其他类对象::方法名
2.本类:this::方法名
3.父类:super::方法名

3.引用构造方法

格式:类名::new

4,引用数组的构造方法

格式:数据类型[ ]::new

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值