Estava desenvolvendo uma IA e senti a necessidade escolher randomicamente um elemento de um enum, ao passo que fiz uma classe randomEnum como descrita abaixo:
Estava desenvolvendo uma IA e senti a necessidade escolher randomicamente um elemento de um enum, ao passo que fiz uma classe randomEnum como descrita abaixo:
De alguma forma, o método falaAleatoria da NullPointerException??
Alguém consegue ver o erro?
lucasportela
Creio que seja a linha 20
privatefinalE[]valores;
aqui você não diz qual o tamanho do array.
privatefinalE[]valores=newE[20];
lucasportela
Justamente, posso ter me expressado mal, mas o que eu quis dizer é que o array não está instanciado e por isso gera o NullPointer, ou seja, ele deve está passando um token vazio.
E
entanglement
Imagino que haja alguma sutileza no seu classloading, porque se você simplesmente escrever um programa bobo de teste, tal como o seguinte:
funciona direitinho. Eu só recomendaria que o método “falaAleatoria” fosse estático para evitar ter de fazer essa “gambis” que mostrei acima (por exemplo, selecionar um elemento arbitrário da enum “Fala”, somente para invocar o método falaAleatoria.
Essa sua classe está dentro de um sistema em um EJB Container ou em um Web Application? É que nesse tipo de sistema as configurações são mais complicadas.
WellingtonRamos
lucasportela:
aqui você não diz qual o tamanho do array.
private final E[] valores = new E[20];
Teoricamente, valores é inicializado em valores = token.getEnumConstants(); dentro do construtor.
Eu depuraria exatamente esse ponto para verificar o que getEnumConstants está retornando.