Esse é um recurso que está disponível na linguagem java desde a versão 5 , na verdade já uso essa feature da linguagem mas nem sabia :-)
O que é autoboxing and unboxing ?
O autoboxing é quando o java converte automaticamente para você um tipo primitivo, como por exemplo um numero int , em um objeto Integer. O unboxing é exatamente o contrario é quando a partir de um objeto, por exemplo um Integer podemos acessar automaticamente o tipo primitivo correspondente um numero int. Neste exemplo estamos usando o tipo primitivo int mas o mesmo vale para os outros tipos primitivos byte, short, char, int, long, float, double and boolean.
Pontos importantes !!
1) O compilador usa o método ValueOf( ) para realizar o autoboxing , ou seja converter um tipo primitivo em Objeto correspondente.
2) Da mesma forma o compilador usa o método intValue( ) , doubleValue( ) , etc , para obter de um objeto o tipo primitivo , ou seja um unboxing.
3) Durante o autoboxing o int é convertido para um Integer, o float para Float, o double para Double , e assim sucessivamente . No unboxing acontece o contrario.
4) Você não precisa mais usar nenhum desse métodos, o compilador faz isso para você.
Exemplos de autoboxing:
ArrayList <Integer> intList = new ArrayList <Integer> ();
intList.add(1); //autoboxing - tipo primitivo para Objeto
intList.add(2); //autoboxing
Note que antes do advento do autoboxing você tinha que fazer a conversão manualmente antes de colocar os objetos no Arraylist. Neste caso nosso exemplo ficaria da seguinte maneira .
ArrayList <Integer> intList = new ArrayList <Integer> ();
Integer integer1, integer2;
integer1.valueOf(1);
integer2.valueOf(2);
intList.add( integer1);
intList.add(integer2);
Bem mais trabalhoso né?
Exemplos de unboxing:
ArrayList <Integer> intList = new ArrayList <Integer> ();
intList.add(1); //autoboxing
intList.add(2); //autoboxing
numero1 = intList.get(0); //unboxing - converte o objeto Integer para
//o tipo primitivo int
numero 2 = intList.get(1);
bem mais fácil ?
Fonte: baseado no artigo What is Autoboxing and Unboxing in Java:
http://javarevisited.blogspot.sg/2012/07/auto-boxing-and-unboxing-in-java-be.html
Comentários
Postar um comentário
Ajude o blog a melhorar comente!!!