我和椅子做游戏小精灵网站,wordpress 禁用缩略图,网站的二级页面在哪里做,网页设计网站制作视频教程#x1f308;键盘敲烂#xff0c;年薪30万#x1f308; 目录
#x1f4d5;概念介绍#xff1a;
⭐方法引用的前提条件#xff1a;
1.引用静态方法
2.引用构造方法
①类的构造#xff1a;
②数组的构造#xff1a;
3.引用本类或父类的成员方法
①本类#xff1… 键盘敲烂年薪30万 目录
概念介绍
⭐方法引用的前提条件
1.引用静态方法
2.引用构造方法
①类的构造
②数组的构造
3.引用本类或父类的成员方法
①本类
①父类
4.引用其他类的方法
5.特定类的方法引用
总结 概念介绍
方法引用改写Lambda表达式可简化代码书写方法引用就是调用已经拥有的方法学习方法引用是必要的在java的原码中你会经常看到它在以后mybatis-plus的学习中会大量使用方法引用。
⭐方法引用的前提条件
拥有函数式接口存在引用方法引用方法同抽象方法的作用相同引用的方法的形参和返回值类型要与抽象方法保持一致
1.引用静态方法
格式类名::方法名
代码实现 //将集合中的元素转化为int类型并打印 ListString list new ArrayList();Collections.addAll(list, 2, 5, 4, 10);//Lambda方法list.stream().map(new FunctionString, Integer() {Overridepublic Integer apply(String s) {return Integer.parseInt(s);}}).forEach(System.out::println);*///方法引用list.stream().map(Integer::parseInt).forEach(System.out::print);
2.引用构造方法
①类的构造 格式类名::new 注意类里面要有对应的构造方法(参数名与抽象方法保持一致)
代码实现 //将集合里面的字符串封装称user对象//原始写法ArrayListString list new ArrayList();Collections.addAll(list, 张无忌,18, 小昭,19);/*ListUser collect list.stream().map(new FunctionString, User() {Overridepublic User apply(String s) {String[] split s.split(,);return new User(split[0], Integer.parseInt(split[1]));}}).collect(Collectors.toList());System.out.println(collect);*///引用构造方法//类名::newListUser newlist list.stream().map(User::new).collect(Collectors.toList());
②数组的构造 格式数据类型名[]::new
代码实现 //数组的构造方法ArrayListInteger list new ArrayList();Collections.addAll(list, 1, 2, 3, 4);//原始方法Integer[] array list.stream().toArray(new IntFunctionInteger[]() {Overridepublic Integer[] apply(int value) {return new Integer[value];}});//方法引用Integer[] array1 list.stream().toArray(Integer[]::new);
3.引用本类或父类的成员方法
①本类 格式this::方法名 (前提非静态) 注意被引用方法一定不要是静态的因为静态里面没有this和super关键字
代码实现 //升序排序public void testmethod1(){ListInteger list new ArrayList();Collections.addAll(list, 1, 2, 3, 4, 5);// 引用本类中非静态的 this::方法名list.stream().sorted(this::method1).forEach(System.out::print);}public int method1(int o1, int o2){return o2 - o1;}
①父类 格式super::方法名(前提非静态)
代码实现 同上只是将this改为了super 4.引用其他类的方法
格式对象名::方法名 public static void main(String[] args) {//将集合中的数据封装成User对象//引用其他类型的方法ArrayListString list new ArrayList();Collections.addAll(list, 张无忌,18, 小昭,19);ListUser newlist list.stream().map(new Utils()::method).collect(Collectors.toList());System.out.println(newlist);}
5.特定类的方法引用
格式类::方法名
注意抽象方法的形参从第二个开始到最后与引用方法保持一致第一个形参用于指明是什么类
代码演示 // 将字母转为大写//原始方法ArrayListString list new ArrayList();Collections.addAll(list, aaa, bbb, ccc);ListString collect list.stream().map(new FunctionString, String() {Overridepublic String apply(String s) {return s.toUpperCase();}}).collect(Collectors.toList());System.out.println(collect);//方法引用//类名::方法名//局限只能引用抽象方法中第一个参数类型里面的方法//就像这里只能引用string里面的方法//注意 被引用方法的第二个到最后一个形参要与抽象方法保持一致ListString newlist list.stream().map(String::toUpperCase).collect(Collectors.toList()); 总结