java8新特性-方法引用

方法引用:当要传递给Lambda体的操作,已经有了实现方法,可以使用方法引用。

方法引用与lambda表达式结合使用,可以进一步简化代码。

1)实例方法引用:特定对象的实例方法

2)对象方法引用:特定类型的任意对象的实例方法

3)静态方法引用

4)构造方法引用

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

interface A{
    String say();
}
public class Test {
    public static void main(String[] args) {
        Apple apple = new Apple(23,"zhsan");
        A a=()->apple.getName();
        System.out.println(a.say());
        A a1=apple::getName;
        System.out.println(a1.say());
    }
}

静态方法引用

public class Test {
    public static void main(String[] args) {
        Comparator<Integer> com =(x,y)->Integer.compare(x,y);
        System.out.println( com.compare(23,45));
        Comparator<Integer> comparator =Integer::compare;
        System.out.println(comparator.compare(23,45));
    }

 

对象方法引用:

public class Test {
    public static void main(String[] args) {
        //BiPredicate 接受参数,返回boolean
        BiPredicate<String,String> b=(x,y)->x.equals(y);
        System.out.println(b.test("2fdfg","43"));
        BiPredicate<String,String> b2=String::equals;
        System.out.println(b2.test("2fdfg","43"));
    }
}

构造方法引用:

interface A{
    public Object fun();
}
public class Test {
    public static void main(String[] args) {
     A a=()->new Apple();
     A a1=Apple::new;
    }

 

posted @ 2021-07-01 18:16  下饭  阅读(47)  评论(0编辑  收藏  举报