visualizacion transformaciones rotacion rectangulo programacion objetos hacer figuras ejemplos con como animacion java lombok

java - transformaciones - Construye un objeto a partir de uno existente usando lombok



transformaciones 3d en java (2)

Digamos que tengo una clase anotada como lombok

@Builder class Band { String name; String type; }

Sé que puedo hacer:

Band rollingStones = Band.builder().name("Rolling Stones").type("Rock Band").build();

¿Hay una manera fácil de crear un objeto de Foo utilizando el objeto existente como plantilla y cambiando una de sus propiedades?

Algo como:

Band nirvana = Band.builder(rollingStones).name("Nirvana");

No puedo encontrar esto en la documentación de lombok.


¿Hay una manera fácil de crear un objeto de Foo utilizando el objeto existente como plantilla y cambiando una de sus propiedades? ( énfasis mío )

Si realmente desea cambiar una sola propiedad, entonces hay una manera mejor y más eficiente:

@Wither class Band { String name; String type; } Band nirvana = rollingStones.withName("Nirvana");

El marchitador no crea basura, pero puede cambiar solo un campo. Para cambiar muchos campos, puedes usar

withA(a).withB(b).withC(c)....

y producir toneladas de basura (todos los resultados intermedios) pero que toBuilder es más eficiente y más natural.


Puede usar el parámetro toBuilder para dar a sus instancias un método toBuilder() .

@Builder(toBuilder=true) class Foo { int x; ... } Foo f0 = Foo.builder().build(); Foo f1 = f0.toBuilder().x(42).build();

De la documentación :

Si usa @Builder para generar constructores para generar instancias de su propia clase (este es siempre el caso a menos que agregue @Builder a un método que no devuelva su propio tipo), puede usar @Builder (toBuilder = true) para generar también un método de instancia en su clase llamado toBuilder (); crea un nuevo constructor que comienza con todos los valores de esta instancia.

Descargo de responsabilidad: soy un desarrollador lombok.