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

285
Visualizações
Java: ¿Cómo combinar atributos de dos clases en una sola?

Estoy tratando de traducir código JavaScript a código Java.

En JavaScript, las interfaces pueden tener atributos y una interfaz puede extender múltiples interfaces:

 interface Interface1 { name?: string age?: number } interface Interface2 { id?: string } interface InterfaceCombination extends Interface1, Interface2 { position?: string }

Quiero traducir este código JavaScript a código Java. Tengo varias ideas, pero no sé si son buenos diseños.

Primera idea: clases y delegación

Dado que las interfaces de Java solo tienen atributos final static , elijo clases para mantener esos atributos:

 public class Class1 { private String name; private Number age; public String getName(); public void setName(String name); ... // getter & setter for age } public class Class2 { private String id; ... // getter & setter for id }

Sin embargo, ahí está el problema. Una clase de Java solo puede extender una clase, así que elijo usar la delegación:

 public class ClassCombination { private Class1 class1; private Class2 class2; private String position; public String getName() { return class1.getName(); } ... // getters & setters }

Esto daría lugar a una gran cantidad de trabajo repetido cuando la jerarquía de la delegación es profunda. Traté de usar la anotación @Delegate en lombok, pero esto es experimental y no admite la delegación recursiva.

Segunda idea: interfaz y getters y setters

Aunque una clase Java solo puede extender una clase, una interfaz Java puede extender múltiples interfaces.

 public interface Interface1 { public String getName(); public void setName(); ... // getter & setter for age } public interface Interface2 { ... // getter & setter for id } public interface InterfaceCombination extends Interface1, Interface2 { ... // getter & setter for position }

Esta solución conduciría a un trabajo pesado en la escritura de getters y setters en las interfaces. Y no puedo usar lombok para generar captadores y definidores automáticamente en las interfaces.

¿Hay alguna solución más elegante y fácil de implementar?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Siempre puede hacer que los atributos sean públicos si no desea escribir varios captadores y definidores. Además, en Java, el código debe ser:

 public interface InterfaceCombination implements Interface1, Interface2 {

No

 public interface InterfaceCombination extends Interface1, Interface2 {
about 4 years ago · Juan Pablo Isaza 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