uno:
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());
}
Convierto por encima de código para la función lambda java 8 de la siguiente manera.
public static Set<NurseViewPrescriptionWrapper> create(final Set<NurseViewPrescriptionDTO> nurseViewPrescriptionDTOs) {
return nurseViewPrescriptionDTOs.stream()
.map(input -> new NurseViewPrescriptionWrapper(input))
.collect(Collectors.toSet());
}
Ahora, estoy recibiendo tema de sonar, como Lambdas should be replaced with method references
, a '->' este símbolo. ¿Cómo puedo solucionar este problema?
Suman dulce:
Su lambda,
.map(input -> new NurseViewPrescriptionWrapper(input))
puede ser reemplazado por
.map(NurseViewPrescriptionWrapper::new)
Que la sintaxis es una sintaxis de referencia método. En el caso de NurseViewPrescriptionWrapper::new
es una referencia método especial que se refiere a un constructor