A. Compilation fails due to an error in line 23
B. Compilation fails due to an error in line 29
C. A ClassCastException occurs in line 29
D. A ClassCastException occurs in line 31
E. The Value of all four prints in natural order
sei que nao pode usar sort() com valores boolean no array e que os elementos do array devem ser mutualmente comparaveis,porem minha duvida é:
PQ A RESP É A LETRA C e NÃO É A LETRA B!
eu marquei B porem o gab da como resp a letra C!
lá ele fala que lanca ClassCastException se os elementos nao forem mutuamente comparaveis
_
_sic_
Creio que é a letra ‘C’ por que você está utilizando um array de Objetc, não teria como o compilador saber que dentro do seu array existem tipos incompatíveis para o método sort(), logo o erro vai ocorrer em tempo de execução. Por isso a ClassCastException é lançada na linha em que o método sort() é chamado.
aurelio_silva
A resposta não é a letra B porque em tempo de compilação não dá pra saber o que vai ter dentro do array de Object myObjects, então vai compilar numa boa e só vai aparecer o problema em tempo de execução, lançando a exceção.
Até.
pintofree
E a letra C tmb pq em tempo de execução ele tenta converter os objetos para um tipo mutuamente comparavel o que gera exceção
alarangeiras
Olá Thiago
Seguinte, não acontece um erro de compilação pois para o compilador a referência é de um object e supostamente o que há no array são objetos da classe object (pelo menos para o compilador é assim) nós (programadores) assumimos o risco de atribuir um objeto polimorficamente.
A compilação é efetuada tranquilamente, porém em tempo de execução o método sort da Classe Array se utiliza do método compareTo (anteriormente definido em cada classe) para ordenar os objetos. Porém possuimos alguns objetos que não são mutuamente comparáveis, como os dois primeiros Integer e String.
A exceção ClassCastException acontece justamente no método compareTo da wrapper Integer (se não me engano, me corrijam se estiver errado, por favor) quando a mesma tenta comparar o Integer à String.
Quando tiver dúvidas deste tipo você pode usar o eclipse com o exemplo e analisar o rastreamente da pilha (foi o que fiz.). Ou se prefirir postar, é informação agregada…
Espero ter ajudado,
Abraços para todos.
Thiago_da_Santa
Valeu galera do GUJ pela ajuda…
p.s Sergio, nao é possivel usar sort() em array de BOOLEAN nao, eu testei no eclipse e no netbeans e no monck do Iquisitation(diz que tb n é possivel sort() em array de boolean)
sergiolopes
thiago, array de boolean não, mas array de Boolean como eu disse, sim. cuidado pra não confundir os dois.