Ola pessoal , bom dia estou estou com uma duvida e não consegui entender essa questão;
Diz que o erro esta em “Arrays.sort(myObjects);” que gera um CastException alguem pode me dar uma
orientação !!! Vlw!!
public class Question_11 {
public static void main(String[] args) {
Object[] myObjects = {new Integer(12), new String("FOO"), new Integer(5), new Boolean(true)};
Arrays.sort(myObjects);
for (int i = 0; i < myObjects.length; i++) {
System.out.print(myObjects[i].toString());
System.out.print("");
}
}
Os objetos são diferentes dentro do array de Objects. Eles não são comparáveis. Como você pode comparar um Integer com uma String ou um Boolean? Este é o erro.
Você tenta ordenar um array que contém tipos diferentes e o método “sort” tenta comparar, por exemplo, a String com o Integer (a fim de ordená-los), tentando fazer um cast.
Como ele não consegue, ocorre uma ClassCastException.
Está acontecendo o seguinte quando ele for ordenar o array ele está tentando ordenar com o tipo do primeiro objeto no caso Integer, quando ele for comparar com o segundo ele vai tentar fazer um cast para o tipo do primeiro e como é uma String e não um Integer é por isso que é lançado o erro.
Faça um teste agora colocando tudo como Integer ou String.