常见写法
一个方法要么是静态方法 要么是实例方法
- [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,类名调用实例方法的形式是异类