本篇文章为你整理了Java方法引用(java方法引用重要吗)的详细内容,包含有java方法引用通俗理解 java方法引用重要吗 java方法引用作为函数参数 java方法引用数组 Java方法引用,希望能帮助你了解 Java方法引用。
以Lambda表达式的方式,调用了接口的实现类,重写了接口中的方法
接口作为参数,实际上参数是接口的实现类*/
usePrintable(s - System.out.println(s));
/*方式二
方法引用符 ::
参数s:可推导的就是可省略的*/
usePrintable(System.out::println);
* 一个以接口对象为形式参数的方法
* @param p 接口对象
private static void usePrintable(Printable p) {
System.out.println("卡塔尔世界杯");
运行结果:
卡塔尔世界杯
卡塔尔世界杯
方法引用符
:: 该符号为引用运算符,它所在的表达式被称为方法引用
Lambda表达式:根据“可推导就是可省略”原则,无需指定参数类型,也无需指定重载形式,他们都将被自动推导
方法引用:同样可根据上下文推导
Lambda表达式可以使用方法引用改进
//Lambda表达式被引用类方法替代时,它的形式参数全部传递给静态方法作为参数
useConvert(Integer::parseInt);
//对象::成员方法
//Lambda表达式被对象的实例化替代时,它的形式参数全部传递给该方法作为参数
usePrinter(new PrintString()::printUpper);
private static void usePrinter(Printer p){
p.printUpperCase("How are you");
HOW ARE YOU
HOW ARE YOU
引用类的实例方法
引用类的实例方法,其实就是引用类中的成员方法
格式:类名::成员方法
private static void useMyString(MyString m) {
System.out.println(m.mySubString("今天天气很凉快", 2, 6));
天气很凉
引用构造器
引用构造器,其实就是引用构造方法
格式:类名::new
定义一个学生类,里面有两个成员变量(name,age),并提供无参构造方法和带参构造方法,以及成员变量的set和get方法
public class Student {
private String name;
private int age;
public Student() {
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 interface StudentBuilder {
Student build(String name,int age);
定义一个测试类
public class StudentDemo {
public static void main(String[] args) {
//Lambda表达式
useStudentBuilder((a, b) - new Student(a, b));
//引用构造器
//Lambda表达式被构造器替代的时候,它的形式参数全部传递给构造器作为参数
useStudentBuilder(Student::new);
private static void useStudentBuilder(StudentBuilder s) {
Student stu = s.build("钱学森", 28);
System.out.println(stu.getName() + "-" + stu.getAge());
运行结果
``java
钱学森-28
钱学森-28
以上就是Java方法引用(java方法引用重要吗)的详细内容,想要了解更多 Java方法引用的内容,请持续关注盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。