Consegui colocar um enum dentro de um atributo do tipo Object, mas a classe java.lang.Enum não extende Object. Por que?
Um enum é um objeto?
6 Respostas
enum Enum01 { A, B, C }
public class Teste {
public static void main(String [] args){
Object o = Enum01.A;
System.out.println(o instanceof Object); //imprime true
}
}
Todas as classes em java estendem Object.
Aonde vc viu que não estende?
Exatamente.
O que confunde é o seguinte.
O comando enum define uma Lista de objetos, que são filhos de uma classe enum. Por exemplo:
A classe “Nomes”, é filha de Enum, que é filha de Object, definiu 4 objetos, A, B, C e D. Você pode até mesmo implementar propriedades e métodos num enum (incluindo polimórficos), e eliminar centenas de switches no seu código, fazendo assim um favor a humanidade.
Um exemplo disso está aqui:
http://www.guj.com.br/posts/list/55885.java
O que confunde é o seguinte.O comando enum define uma Lista de objetos, que são filhos de uma classe enum. Por exemplo:
A classe “Nomes”, é filha de Enum, que é filha de Object, definiu 4 objetos, A, B, C e D. Você pode até mesmo implementar propriedades e métodos num enum (incluindo polimórficos), e eliminar centenas de switches no seu código, fazendo assim um favor a humanidade.
Um exemplo disso está aqui:
http://www.guj.com.br/posts/list/55885.java
E cada objeto é filho de Nomes
