Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

274
Visualizações
Wither vs builder Biblioteca de Lombok

Comencé a usar la biblioteca de Lombok y no puedo entender la diferencia entre usar un wither y un constructor.

 @Builder @Wither public class Sample { private int x; private int y; }

Ahora puedo crear un objeto de 2 maneras:

 Sample s = new Sample().builder() .x(10) .y(15) .build();

O

 Sample s = new Sample() .withx(10) .withy(10);

¿Cuál es la diferencia entre los dos? ¿Cuál debo usar?

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

@Builder se usa para crear objetos mutables, @Wither para inmutables.

Divulgación: soy un desarrollador de lombok.

about 4 years ago · Santiago Trujillo Relatório

0

En general, la diferencia es que cuando construye un objeto con builder(), debe llamar al método build() al final, y antes de llamar a build(), todos los valores de propiedad se guardan en el objeto constructor interno en lugar del objeto que creó con nuevo. Después de configurar todas las propiedades y llamar a build(), se creará un nuevo objeto. Vea los detalles aquí: https://projectlombok.org/features/Builder.html . Creo que la mejor manera para el patrón de construcción es:

 Sample s = Sample.builder() .x(10) .y(15) .build();

Porque el primer objeto Sample es redundante.

Para withers, cada vez que llamas a withXXX(xxx), se devuelve un nuevo objeto, con XXX establecido en xxx, y todas las demás propiedades se clonan del objeto al que llamaste wither (si xxx es diferente del xxx original. Consulta los detalles aquí: https://projectlombok.org/features/experimental/Wither.html ). Elija de qué manera, creo que solo depende de su hábito personal y el estilo de código de su proyecto.

Espero que esto pueda ayudarte.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda