学习笔记-Java8新特性-第三节-方法引用与构造器引用

方法引用与构造器引用

什么是方法引用

  • 对方法的引用

  • 若Lambda体中的内容,已经有方法实现了,我们可以使用该方法的方法引用作为替代

    • 已经有方法实现了是指,该方法的参数列表和返回值类型和lambda的一致
  • 可以将方法引用理解成Lambda表达式的另外一种表现形式

语法格式

  • 对象::实例方法名

  • 类::静态方法名

  • 类::示例方法名

    • 当参数有两个,第一个参数是方法的调用者,第二个是方法的参数时

    • 可以用这种写法

示例

    public void test1() {
        Consumer<String> consumer1 = (x) -> System.out.println(x);

        PrintStream ps = System.out;
        Consumer<String> consumer2 = ps::println;

        Consumer<String> consumer3 = System.out::println;
    }

构造器引用

  • 含义和方法引用相似

  • 同样需要参数列表保持一致

格式

ClassName::new

示例

    public void test2() {
        Supplier<Employee> sup = () -> new Employee();

        //    public Employee() {
        //        
        //    }
        Supplier<Employee> sup2 = Employee::new;

        //    public Employee(String name) {
        //        this.name = name;
        //    }
        Function<String, Employee> function = Employee::new;
    }

数组引用

  • 与构造器引用类似

格式

Type[]::new

示例

    public void test3() {
        Function<Integer, Integer[]> function1 = (x) -> new Integer[x];
        Function<Integer, Integer[]> function2 = Integer[]::new;
    }
posted @   0Andl0  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示