可以说我有一个Gizmo类,带有一个接受String的构造函数。
可以说我想将List<String>转换为List<Gizmo>

我可能会写:

List<String> strings = new ArrayList<>();
List<Gizmo> gizmos = strings
        .stream()
        .map(str -> new Gizmo(str))
        .collect(Collectors.toList());

现在,问题是IntelliJ告诉我可以用方法引用替换lambda。问题是,我很确定方法引用不能采用参数。

最佳答案

我认为InteliJ意味着要更换

.map(str -> new Gizmo(str))


.map(Gizmo::new)

这是构造函数引用。请参阅here的详细说明。

09-26 15:04