目录
方法引用:
引用静态方法
引用成员方法
引用构造方法
使用类名引用成员方法
引用数组的构造方法
练习
方法引用:
把已经有的方法拿过来用,当做函数式接口中抽象方法的方法体
在Java中,方法引用是一种简化Lambda表达式的方式,可以直接引用已经存在的方法来代替
Lambda表达式。通过方法引用,可以将方法作为一个参数传递给另一个方法,或者将方法赋值给
一个变量。
使用方法引用可以简化代码,提高代码的可读性和简洁性。它可以让我们避免编写冗余的Lambda
表达式,直接引用已经存在的方法
::是什么符号?
方法引用符
方法引用时要注意什么?
- 需要有函数式接口
- 被引用方法必须已经存在
- 被引用方法的形参和返回值需要跟抽象方法保持一致
- 被引用方法的功能要满足当前的需求
引用静态方法
格式: 类名::静态方法
范例:Integer::parseInt
- 方法需要已经存在
- 方法的形参和返回值需要跟抽象方法的形参和返回值保持一致
- 方法的功能:需要把形参的字符串转换成整数
将数据变为int类型👇
首先我们来看一般的思路
使用方法引用👇
引用成员方法
格式: 对象::成员方法
- 其他类:其他类对象::方法名
- 本类:this::方法名(引用处不能是静态方法)
- 父类:super::方法名(引用处不能是静态方法)
练习:
集合中有一些名字,按照要求过滤数据
正常思路如👇
用方法引用
先写个StringJudge类
引用构造方法
格式:类名::new
范例:Student::new
练习:
集合里面存储姓名和年龄,比如:张无忌,15要求:将数据封装成Student对象并收集到List集合中
Student类
public class Student {private String name;private int age;public Student() {}public Student(String name, int age) {this.name = name;this.age = age;}/*** 获取* @return name*/public String getName() {return name;}/*** 设置* @param name*/public void setName(String name) {this.name = name;}/*** 获取* @return age*/public int getAge() {return age;}/*** 设置* @param age*/public void setAge(int age) {this.age = age;}public String toString() {return "Student{name = " + name + ", age = " + age + "}";}
}
用方法引用👇
需要在Student类中加入
使用类名引用成员方法
格式: 类名::成员方法
范例:string::substring
练习:
集合里面一些字符串,要求变成大写后进行输出
用方法引用👇
引用数组的构造方法
格式: 数据类型[]::new
范例:int[]::new
练习:
集合中存储一些整数,收集到数组当中
用引用方法👇
练习
练习1:
集合中存储一些字符串的数据,比如:张三,23收集到Student类型的数组当中(使用方法引用完成)
练习2:
创建集合添加学生对象,学生对象属性:name,age只获取姓名并放到数组当中(使用方法引用完成)
Student类
package com.youjunjie;public class Student {private String name;private int age;public Student() {}public Student(String str){this.name = str.split(",")[0];this.age = Integer.parseInt(str.split(",")[1]);}public Student(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String toString() {return "Student{name = " + name + ", age = " + age + "}";}
}
方法引用的这一期就到这里啦!!!感谢观看!!!
继续努力努力再努力!!!