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

245
Visualizações
¿Es posible crear una clase de enumeración que contenga objetos de otra clase que no sea de enumeración en Java?

Por ejemplo, tengo la clase Subscriber y sus objetos subscriber1 , subscriber2 , subscriber3 . ¿Es posible crear una enum que contenga estos objetos? estoy tratando de hacer esto

 enum Subscribers{ subscriber1,subscriber2,subscriber3; }

Pero obtengo cadenas subscriber1 , subscriber2 , subscriber3 en su lugar. Le agradecería cualquier comentario

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

El valor en una clase de enumeración siempre es del tipo de la enumeración. Aunque también puede agregar campos y métodos a su clase de enumeración:

 enum Subscriber{ subscriber1("s1"),subscriber2("s2"),subscriber3("s3"); private final String name; private Subscriber(String n) { name = n; } public void greet() { System.out.println ("Hello" + name); } }
over 4 years ago · Santiago Trujillo Relatório

0

Cuando defines una enumeración:

 public enum Subscribers { subscriber1, subscriber2, subscriber3; }

Significa que define (es decir, a partir del fragmento proporcionado) 3 objetos únicos de la clase Subscribers . En otras palabras, se trata de instancias absolutamente normales como otras (por ejemplo, new InputStream() ). Y eres libre de implementar lo que quieras en estas clases.

 public interface Subscribe { void subscribe(Object obj); } public enum Subscribers implements Subscribe { txtFileSubscriber { private final InputStream in = new InputStream("foo.txt"); public void subscribe(Object obj) { // implementtion } }, xmlFileSubscriber { private final CsvReader reader = new CsvReader("foo.csv"); public void subscribe(Object obj) { // implementtion } } }

PD El fragmento dado es solo para mostrar cómo puede extender la enumeración. Esta es una característica muy poderosa.

over 4 years ago · Santiago Trujillo Relatório

0

No. Las constantes de enumeración se heredan de la clase de enumeración.

De la especificación del lenguaje Java :

8.9.1. Constantes de enumeración

El cuerpo de una declaración de enumeración puede contener constantes de enumeración. Una constante de enumeración define una instancia de la clase de enumeración.

Además, las constantes no son útiles si sus suscriptores pueden cambiar después de compilar su código.

Sin embargo, puede hacer cualquiera de las siguientes cosas:

  • Cree y llene un conjunto de suscriptores, usando java.util.Set<Subscriber> , por ejemplo, con java.util.HashSet .
  • Haga una enumeración de los tipos de suscriptor y haga que cada suscriptor tenga un tipo de suscriptor.
  • Cree campos finales estáticos de tipo Suscriptor. (Esto no es útil si sus suscriptores pueden cambiar después del tiempo de compilación).
over 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