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

3 respostas
pedroabs

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;

3 Respostas

luistiagos

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…

S

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

vlw

davidbuzatto

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

[]´s

Criado 11 de novembro de 2010
Ultima resposta 11 de nov. de 2010
Respostas 3
Participantes 4