java - Opcional en Lombok
optional (1)
Tengo una clase llamada Address
que se parece a esto:
@Value
class Address {
@NotNull String userId;
@NotNull String line1;
String line2;
private Address(Builder b) {
// copy everything from builder
}
// override getter for line2 so that it returns Optional<String>
public Optional<String> getLine2() {
return Optional.fromNullable(this.line2);
}
// and a Builder
public static class Builder {
// builder methods
}
}
Aquí me veo obligado a escribir Builder
y a Getter
porque, si deseo devolver un Opcional mientras uso Lombok, tendré que declarar line2
como Optional<String>
. ¡Y eso generará un método de construcción que acepta Optional<String>
!
¿Hay alguna otra manera de usar lombok con Optional
?
La respuesta es no, y probablemente nunca lo hará.
Probablemente lo esté haciendo mal :-) Optional
no es un reemplazo para null
ni una forma elegante de evitar NullPointerException
. Es para indicar que la pregunta no tiene respuesta, como: ¿cuál es la edad promedio de una lista vacía de personas?
Optional
opciones Optional
nunca deben pasarse, pero sin el código de llamada tan pronto como sea posible.
Consulte también https://www.voxxed.com/blog/2015/01/embracing-void-6-refined-tricks-dealing-nulls-java/
Dado que estos escenarios son solo unos pocos, y a Lombok le gusta permitir que los programadores escriban mejor código, no espero que haya soporte para eso en Lombok.
Divulgación: Soy un desarrollador de Lombok.