Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

253
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!