方法引用


title: 方法引用
date: 2019-07-24 14:19:23
categories:

  • java基础
    tags:

1. 思维导图

思维导图

2. 方法引用

2.1. 概念

双冒号::为引用运算符,它所在的表达式被称为方法引用。如果Lambda要表达的函数方案已经存在于某个方法的实现中,那么则可以通过双冒号来引用该方法作为Lambda的替代者。

2.1.1. 目的

  • 简化代码, 避免写重复逻辑

2.1.2. 使用场景

  • 如果lambda所要表达的函数方案已经存在与某个方法的实现中, 则可以通过双冒号来引用该方法作为Lambda的替代者. 其实你想表达的lambda已经有人帮你实现了, 就没有必要自己再写一遍, 直接引用即可

2.2. 如何引用

2.2.1. 通过对象名引用成员方法

public class MethodRefObject {
    public void printUpperCase(String str) {
      	System.out.println(str.toUpperCase());
    }
}

函数式接口:

@FunctionalInterface
public interface Printable {
    void print(String str);
}
public class Demo04MethodRef {
    private static void printString(Printable lambda) {
      	lambda.print("Hello");
    }

    public static void main(String[] args) {
        MethodRefObject obj = new MethodRefObject();
        printString(obj::printUpperCase);
    }
}

2.2.2. 通过类名称引用静态方法

2.2.3. 通过super引用成员方法

@FunctionalInterface
public interface Greetable {
  	void greet();
}
public class Human {
    public void sayHello() {
      	System.out.println("Hello!");
    }
}
public class Man extends Human {
    @Override
    public void sayHello() {
        System.out.println("大家好,我是Man!");
    }

    //定义方法method,参数传递Greetable接口
    public void method(Greetable g){
        g.greet();
    }

    public void show(){
        method(super::sayHello);
    }
}

2.2.4. 通过this引用成员方法

2.2.5. 类的构造器引用

2.2.6. 数组的构造器引用

2.3. 方法引用练习

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值