美文网首页
方法引用

方法引用

作者: i小雨 | 来源:发表于2021-01-18 17:13 被阅读0次

方法引用:若lambda体中的内容有方法已经实现了,我们可以使用”方法引用“
(可以理解为方法引用是lambda表达式的另一种表现形式)

主要有三种语法格式:
1、对象::实例方法名
2、类::静态方法名
3、类::实例方法名

方法引用:对象::实例方法名

需要注意的是:方法引用的方法的 参数和返回值 必须和函数式接口的方法的参数和返回值一致

public class TestMethodRef {

    public static void main(String[] args) {

        PrintStream ps = System.out;

        //原始方法
        Consumer<String> con = (str)->System.out.println(str);

        //改进
        Consumer<String> con1 = (str) -> ps.println(str);

        //方法引用
        /**
         * 需要注意的是方法引用的方法的 参数和返回值 必须和函数式接口的方法的参数和返回值一致
         */
        Consumer<String> con2 = ps::println;

        //改进
        Consumer<String> con3 = System.out::println;


        con.accept("123");
        con1.accept("123");
        con2.accept("123");
        con3.accept("123");
    }
}
***********************************************************
123
123
123
123
Process finished with exit code 0
image.png

方法引用:类::静态方法名

System.out.println("*****************2、类::静态方法名******************");
Comparator<Integer> com = (x,y) -> Integer.compare(x,y);

Comparator<Integer> com1 = Integer::compare;

System.out.println(com.compare(3, 2));
System.out.println(com1.compare(1, 2));
System.out.println(com1.compare(2, 2));
*************************************************
1
-1
0

方法引用:类::实例方法名

注意:该方法的使用的规则:第一个参数必须是方法的调用者,第二个参数必须是方法的参数。

System.out.println("*****************3、类::实例方法名******************");
BiPredicate<String,String> bp = (x,y) -> x.equals(y);

//注意:该方法的使用的规则:第一个参数必须是方法的调用者,第二个参数必须是方法的参数。
BiPredicate<String,String> bp1 = String::equals;

System.out.println(bp.test("123","123"));
System.out.println(bp1.test("1234","123"));
***************************************
true
false

相关文章

  • 2020-07-04【方法引用】

    体验方法引用 方法引用符 引用方式

  • Java8——方法引用和构造器引用

    方法引用和构造器引用 方法引用 若Lambda体中的内容已经有方法实现过了,我们可以使用方法引用(方法引用是Lam...

  • 双冒号方法引用

    类别使用形式静态方法引用类名 :: 静态方法名实例方法引用对象名(引用名) :: 实例方法名类方法引用类名 :: ...

  • Java中的双冒号::是什么玩意?有这个语法?

    简洁 方法引用 Optional 可选值 一:简洁 方法引用分为三种,方法引用通过一对双冒号:: 来表示,方法引用...

  • 3.Java8新特性 - 方法引用与构造器

    一.方法的引用 方法引用是用来直接访问类或者实例的已经存在的方法或者构造方法。方法引用提供了一种引用而不执行方法的...

  • jdk8 方法引用

    方法引用 方法引用可看作一个“函数指针” function pointer 方法引用分为4类 1,类名::静态方法...

  • 方法引用

    1.什么是方法引用 方法引用是java8中特定情况下简化lambada表达式的一种语法糖,这里的特定情况是指当调用...

  • 方法引用

    方法引用(Method References) 声明:java8新特性系列为个人学习笔记,参考地址点击这里,侵删!...

  • 方法引用

    1.1 方法引用体验 方法引用出现的原因 在使用Lambda表达式的时候,我们实际上传递进去的代码就是一种解决方案...

  • 方法引用

    lambda表达式被类方法替代的时候,它的形式参数全部传递给静态方法作为参数 lambda表达式被对象的实例方法替...

网友评论

      本文标题:方法引用

      本文链接:https://www.haomeiwen.com/subject/jclxzktx.html