Integer[] não implementa Comparable (embora Integer implemente).
Se você inserir o segundo objeto, então add tentará chamar compareTo sobre o argumento (vt2), mas como Integer[] não implementa Comparable, então vai dar esse ClassCastException.
F
fabioEM
thingol:
Integer[] não implementa Comparable (embora Integer implemente).
Se você inserir o segundo objeto, então add tentará chamar compareTo sobre o argumento (vt2), mas como Integer[] não implementa Comparable, então vai dar esse ClassCastException.
è verdade mesmo pois tinha uma questo assim na prova !Agora entendi pq errei!! valeu cara obrigado!!
LPJava
O TreeSet ele aceita do mesmo tipo mesmo que vc nao use generic. Veja
importjava.util.TreeSet;publicclassTreSet{publicstaticvoidmain(String[]args){TreeSetts=newTreeSet();ts.add(8);ts.add("camilo");}/* lança uma excecao devido ter tipo diferentes * tanto TreeSet quando TreeMap nao permite tipos diferente * ClassCastException acontece */}
flw!
anderson.bonavides
LPJava:
O TreeSet ele aceita do mesmo tipo mesmo que vc nao use generic. Veja
importjava.util.TreeSet;publicclassTreSet{publicstaticvoidmain(String[]args){TreeSetts=newTreeSet();ts.add(8);ts.add("camilo");}/* lança uma excecao devido ter tipo diferentes * tanto TreeSet quando TreeMap nao permite tipos diferente * ClassCastException acontece */}
flw!
LpJava a exceção ClassCastException lança quando vc tenta converter um pai em um filho ou quando vc tenta classificar um um conjunto ou array de tipos diferentes. No caso de TreeSet ele classifica automaticamente.
T
thingol
Não é que TreeSet e TreeMap não aceitem tipos diferentes. É que ele sempre tenta chamar compareTo, e pode ser que não esteja definido ou compareTo lance uma exceção quando você jogue coisas de tipos diferentes (não-comparáveis).
Aqui dou um exemplo de um TreeSet que aceita objetos de classes derivadas de uma determinada classe:
O TreeSet ele aceita do mesmo tipo mesmo que vc nao use generic. Veja
importjava.util.TreeSet;publicclassTreSet{publicstaticvoidmain(String[]args){TreeSetts=newTreeSet();ts.add(8);ts.add("camilo");}/* lança uma excecao devido ter tipo diferentes * tanto TreeSet quando TreeMap nao permite tipos diferente * ClassCastException acontece */}
flw!
LpJava a exceção ClassCastException lança quando vc tenta converter um pai em um filho ou quando vc tenta classificar um um conjunto ou array de tipos diferentes. No caso de TreeSet ele classifica automaticamente.
Exato e pq vc acha que o TreeSet faz isso quando vc coloca tipo diferente? olhe a resposta do thingol explica o por que… do ClassCastException é lançado…
F
fabioEM
thingol:
Não é que TreeSet e TreeMap não aceitem tipos diferentes. É que ele sempre tenta chamar compareTo, e pode ser que não esteja definido ou compareTo lance uma exceção quando você jogue coisas de tipos diferentes (não-comparáveis).
Aqui dou um exemplo de um TreeSet que aceita objetos de classes derivadas de uma determinada classe: