Por que recebo uma exception na linha 05 se removo a linha 3? Se eu usar variáveis normais (linha 06 à frente), isso não acontece. Por que não tenho o mesmo problema na linha 10?
01 Object objArray[] = new Object[1]; // objArray[0] == null
02 String strArray[] = new String[1]; // strArray[0] == null too
03 objArray = strArray; // Se eu removo esta linha, é lançada a exception na linha 5
04 objArray[0] = new String("abcd");
05 strArray = (String[]) objArray; //java.lang.ClassCastException, se a linha 3 for removida
06 //Mesmo código acima, mas com variáveis normais
07 Object obj = null;
08 String str = null;
09 obj = new String("abcd");
10 str = (String) obj; // nenhuma excessão aqui