Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

252
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda