java学习笔记(41)方法引用

41、方法引用


1、概述

对lambda表达式的简化

双冒号::为引用运算符,而它所在的表达式称为方法引用,如果lambda表达式要表达的函数式接口已经存在,要使用的方法也已经存在,这可以用过方法引用来优化lambda的书写

2、通过对象名引用成员方法

前提

  1. 对象名已经存在,成员方法也已经存在

示例

MethodRerObject obj = new MethodRerObject();
printString(obj::printUpperCaseString);
//创建了一个对象,然后通过方法引用调用其中的方法

3、通过类名引用静态成员方法

前提

类已经存在,静态成员已经存在

int num2 = Method(-10, Math::abs);
//第二个参数为方法引用

4、使用super引用父类

因为有继承,所以可以直接使用super调用父类成员方法

method(()->{
            super.sayHello();
        });

5、引用构造器

public class Demo4 {
    public static void printName(String name,PersonBuilder pb){
        Person person = pb.BuilderPerson(name);
        System.out.println(person.getName());
    }

    public static void main(String[] args) {
        printName("迪丽热巴",(String name)->{
            return new Person(name);
        });
        /*
        方法引用
         */
        printName("古力娜扎",Person::new);
    }
}

6、数组的构造器引用

public class Demo5 {
    public static int[] createArray(int length,ArrayBuilder ab){
        return ab.builderArray(length);
    }

    public static void main(String[] args) {
        int[] arr1 = createArray(10, (len) -> {
            return new int[len];

        });
        System.out.println(arr1.length);

        /**
         * 方法引用
         */
        int[] arr2 = createArray(10, int[]::new);
        System.out.println(Arrays.toString(arr2));
        System.out.println(arr2.length);

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值