Pessoal, alguém pode me dizer o que é essa Exception e como evitá-la
[list]
java.lang.ClassCastException
[/list]
Valeu
Cara, a API diz tudo. Se vc ainda tiver duvidas, poste seu código pra gente:
public class ClassCastException
extends RuntimeException
Thrown to indicate that the code has attempted to cast an object to a subclass of which it is not an instance. For example, the following code generates a ClassCastException:
Object x = new Integer(0);
System.out.println((String)x);
A questão é pq eu não posso utilizar esse código:
public Item[] getItems()
{
Item[] item = null;
if ( this.items.size() > 0 ) {
item = (Item[]) this.items.toArray(); //exception
}
return item;
}
Quando eu faço isso com String funciona.
Valeu pela ajuda !!!
obs.: a variável items é um ArrayList.
Se você quer que a sua array seja do tipo Item[] você tem que passá-la como parâmetro.
Se não passar nada, fica como Object[].
item = (Item[])this.items.toArray(item);
Como assim com String funciona?
Kra, eu não sei te explicar tecnicamente pq isso gera a Exception. O método toArray gera um Array de Objects, e object pode ser qualquer coisa.
Se vc gerasse um array de Object a partir de um array(não um ArrayList) de Item, esse cast funcionaria.
Mas a solução certa foi essa que a bani deu.
Na verdade a frase correta seria que qualquer coisa pode ser uma array de Object, não o contrário. E é por isso que não funciona.