鉴于..
List<Foo> copy(List<Foo> foos) {
return foos
.stream()
.map(foo -> new Foo(foo))
.collect(Collectors.toList());
}
IntelliJ IDEA 2016.1.1报告new Foo(foo)
&#34;可以替换为方法参考&#34;。
我知道no-arg构造函数的Foo::new
语法,但是我不知道如何将foo
作为参数传递。我肯定在这里遗漏了一些东西。
答案 0 :(得分:8)
我知道no-arg构造函数的
Foo::new
语法
这不是Foo::new
所做的。 This expression will expand to what is needed in the context it's used.
在这种情况下
List<Foo> copy(List<Foo> foos) {
return foos.stream().map(Foo::new).collect(Collectors.toList());
}
会查找需要Foo
参数的构造函数。