Por que não podemos atribuir uma 'int[]' a uma 'Integer[]'?

Integer[] i1 = {1,4,2,3,7,6,5};
int[] i2 = {1,4,2,3,7,6,5};

// por que não dá certo? int[] i2 = i1;

por que são objetos diferentes… no caso int é um tipo primitivo e Integer e uma classe que serve pra “encapsular” o tipo int… Integer é objeto int é tipo primitivo… a partir do java 5 ele consegue atribuir um int ao um Integer pois internamete ele converte… porem um array de Integer e de ints tanto um como outro são objetos e são objetos distintos…

Luis, me corrija se eu tiver errado, neste caso é feito um cast implicito (auto boxing), é isso mesmo?

vlw

Autobox e autounbox não são casts.
O problema dos dois arrays é justamente o que o Luis falou.

[]´s