当前位置:网站首页>11 方法引用和构造器应用

11 方法引用和构造器应用

2022-06-22 13:04:00 水无痕simon

  1. 若lambda体中的内容有方法已经实现了,那么我们可以使用“方法引用”(可以视为lambda的另外一种形式)
    主要有3种引用方式:
    (1)对象::实例方法名
    (2)类::静态方法名
    (3)类::实例方法名
public class LambdaTest {
    
    public static void main(String[] args) {
    
        //1. 实例::实例方法名
        Consumer<String> con = (x) -> System.out.println(x);
        /** * 2. 实例方法名 * 注意:函数接口的放回值和实例方法的返回值,参数必须保持一致 */
        PrintStream ps = System.out;
        Consumer<String> consumer = ps::println;

        //方式三:
        Consumer<String> consumer1 = System.out::println;
        consumer1.accept("ss");

        /** * Supplier接口是存在返回值的,此处如果是getAge则会报错 * 参数类型必须保持一致 */
        Employee employee = new Employee();
        Supplier<String> sup = () -> employee.getName();
        String s = sup.get();
        System.out.println(s);

        Supplier<Integer> supplier = () -> employee.getAge();
        Integer result = supplier.get();
        System.out.println(result);
    }
}

类::静态方法

public class LambdaTest {
    
    public static void main(String[] args) {
    
        /** * 1. 类::静态方法 * 注意: lambda体和引用的参数列表和返回值类型保持一致 */
        Comparator<Integer> com = (x,y) -> Integer.compare(x,y);
        //等同于
        Comparator<Integer> comparator = Integer::compare;
    }
}
原网站

版权声明
本文为[水无痕simon]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_39563769/article/details/125355427