public static Set<NurseViewPrescriptionWrapper> create(final Set<NurseViewPrescriptionDTO> nurseViewPrescriptionDTOs) {
return nurseViewPrescriptionDTOs.stream()
.map(new Function<NurseViewPrescriptionDTO, NurseViewPrescriptionWrapper>() {
@Override
public NurseViewPrescriptionWrapper apply(NurseViewPrescriptionDTO input) {
return new NurseViewPrescriptionWrapper(input);
}
})
.collect(Collectors.toSet());
}
我将上述代码转换为Java 8 lamda函数,如下所示。
public static Set<NurseViewPrescriptionWrapper> create(final Set<NurseViewPrescriptionDTO> nurseViewPrescriptionDTOs) {
return nurseViewPrescriptionDTOs.stream()
.map(input -> new NurseViewPrescriptionWrapper(input))
.collect(Collectors.toSet());
}
现在,我收到声纳问题,例如
Lambdas should be replaced with method references
,以“->”这个符号。我该如何解决这个问题? 最佳答案
你的lambda,
.map(input -> new NurseViewPrescriptionWrapper(input))
可以替换为
.map(NurseViewPrescriptionWrapper::new)
该语法是方法参考语法。在
NurseViewPrescriptionWrapper::new
的情况下,它是一个特殊的方法引用,它引用一个构造函数