简单看懂java的方法引用

常见写法

一个方法要么是静态方法 要么是实例方法

  • [A] (参数列表) -> 类.静态方法(参数列表) => 类名::方法名
  • [B] (参数列表) -> 实例.实例方法(参数列表) => 实例名::方法名
  • [C] (实例,参数列表) -> 实例.实例方法(参数列表) => 类名::方法名
  • [D] 构造器引用
	name->new StringBuilder(name)
   //省略了【参数列表】
    StringBuilder::new

如何看懂

[A] 省略了参数列表

        List<Author> authors = getAuthors();
        Stream<Author> authorStream = authors.stream();     
        authorStream.map(author -> author.getAge())
                .map(age->String.valueOf(age));
        List<Author> authors = getAuthors();

        Stream<Author> authorStream = authors.stream();

        authorStream.map(author -> author.getAge())
                .map(String::valueOf);

[B] 省略了参数列表

[C] 省略了实例+ (参数列表)

        StringBuilder sb = new StringBuilder();
        
        authorStream.map(author -> author.getName())
                .forEach(name->sb.append(name));
        
        //省略了【对象 + (参数列表)】 
        authorStream.map(Author::getName)
                //省略了【参数列表】
                .forEach(sb::append);

综上

除了类名调用实例方法的形式,其他都只省略了参数列表
so,类名调用实例方法的形式是异类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值