Enums - acesso a variaveis enums nao inicializadas?

5 respostas
icarocd

olá,
estou comecando a caminhada pra fazer a SCJP 1.5, e to fechando esses dias o capitulo 1 da Kathy.
apareceu uma duvida de enum nas questoes do livro que fiquei com uma pulga atras da orelha, vejam se voces saberiam me explicar… O codigo abaixo acessa constantes do enum mas a varivel sequer foi inicializada, entao nao entendi…
valeu rapaziada

public class Enum1

{

static enum A{ A, B }
static A a;

public static void main(String[] args){
	System.out.println( a.B.toString() );	//roda sem problemas!
	System.out.println( a.toString() );	//erro de nullPointer!
}

}

5 Respostas

anderson.bonavides

A variável de referência não ta acessando o ENUM…

Corrigindo:

System.out.println( a.B.toString() );
ou

System.out.println(a.A.toString());

O A e o B refere-se as constantes dentro do ENUM…

anderson.bonavides

Só para que fique mais claro no momento vc pode considerar que a variavel static é previamente conhecido pelo meto main…

anderson.bonavides

Só para que fique mais claro no momento vc pode considerar que a variavel static é previamente conhecido pelo metodo main…

LPJava

bom, lembre-se as variaveis tanto static quanto nao static… elas recebem seus valores padrao… se for um int recebe 0 se for um objeto recebe null, como enum é um tipo especial, entao:

static A a;

refere-se a null, porem vc tentou usar uma variavel que refere-se a null entao eh lançada uma exceção…

:smiley: se eu tiver errado a galera me corrige ai tb to estudando para scjp porem tem mais de 1 semana sem pegar no livro :frowning:

icarocd

bom galera valeu ai, mas ninguem respondeu o que eu perguntei de fato!
minha duvida está na instrucao que roda certo, e nao na que roda errado, do exemplo(2ª).

o que quero saber é o que porquê de uma variavel de instancia que tem valor null poder acessar membros estaticos do seu tipo.

Criado 30 de julho de 2007
Ultima resposta 6 de ago. de 2007
Respostas 5
Participantes 3