ClassCastException

Pessoal, alguém pode me dizer o que é essa Exception e como evitá-la
[list]
java.lang.ClassCastException
[/list]
:slight_smile: 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);

:wink:

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.