java8 方法的引用

参考 : https://blog.csdn.net/higher_/article/details/84317549 

静态方法的引用 :

from (lambda表达式)
(args) -> Class.staticMethod(args)
to (方法的引用)
Class::staticMethod

静态方法引用实例 :

public class Student {

    public String name;
    public Student(){}

    public Student(String name) {
        this.name = name;
    }

    public void setName(String name){
        this.name = name;
    }

    public String getName(){
        return this.name;
    }

    public static void resultName(Student student){
        System.out.println(student.getName());
    }
}
public class Lam {

    public static void main(String[] args) {

        List<Student> list = new ArrayList<>();

        Student student = new Student();
        student.setName("ming");

        Student student1 = new Student();
        student1.setName("xiao");

        list.add(student);
        list.add(student1);
        
        //方法的引用
        list.stream().forEach(Student::resultName);
    }

}

 已有对象的实例方法引用

from (lambda表达式)
(args) -> obj.instanceMethod(args)
to  (方法的引用)
obj::instanceMethod
 

已有对象的实例方法引用 :

public class Student {

    public void OtherMethod(String str){
        System.out.println(str);
    }
}
public class Lam {

    public static void main(String[] args) {

        List<String> list = new ArrayList<>();
        Student student = new Student();

        list.add("handao");
        list.add("cold");

        //方法的引用
        list.stream().forEach(student::OtherMethod);
    }

}

特定类型的对象的实例方法的方法引用

from (lambda表达式)
(obj, args) -> obj.instanceMethod(args)
to (方法的引用)
ObjectType::instanceMethod
 

发布了58 篇原创文章 · 获赞 3 · 访问量 5679

猜你喜欢

转载自blog.csdn.net/hc1428090104/article/details/104030263
今日推荐