Você precisa de um freelancer, códigos-fonte e exemplos completos?
Bem-vindo(a) ao meu site. Além de realizar alguns serviços como freelancer eu tenho alguns códigos-fonte e exemplos completos de Java, Delphi, PHP, Python, C/C++, Hibernate, JPA, Spring, JSP, Servlets, Ruby, Ruby On Rails e muitas outras linguagens e frameworks. Veja como falar comigo clicando aqui.
 
Voltar para a página inicial Página Inicial Artigos e Tutoriais Dicas e Truques Veja nossa relação de códigos-fonte e exemplos completos
Você está aqui: Inicio -> Artigos e Tutoriais -> Java -> Recursos de autoboxing e unboxing - O que são e quando devo usar?
Java - Recursos de autoboxing e unboxing - O que são e quando devo usar?
Views: 588 Comentários Confiabilidade: Avalie:


1 - Introdução

Antes de falarmos sobre o que são autoboxing e unboxing, vamos analisar o método add da classe ArrayList:



Neste método podemos ver que o argumento E é do tipo objeto, ou melhor, um tipo de referência a um objeto. Sendo assim, o processo de adicionar um tipo primitivo (int, float, double, etc) a uma ArrayList teria que ser feito usando as classes invólucros (wrapper classes - Integer, Float, Double, etc). Veja um exemplo:



Veja que antes de adicionar o valor (int) primeiro nós tivemos que construir uma nova instância de uma classe Integer. Esta classe Integer é uma classe invólucro e serve especialmente para os casos em que precisamos passar um valor primitivo para métodos que requerem referências a objetos.

2 - Entendendo o autoboxing

Façamos um teste agora. Experimente alterar as chamadas ao método add para esta nova versão:



Compile e execute o código. Você verá que estas duas etapas ocorrem sem problemas. Agora o compilador está inserindo o tipo primitivo na classe invólucro automaticamente. Para nós, desenvolvedores, isso significa alguns minutos de digitação a menos. É claro que os bytecodes resultantes serão os mesmos, com ou sem autoboxing.

3 - Apresentando o unboxing

Veja agora o método get da classe ArrayList:



Este método nos permite acessar um elemento na lista mediante um índice. Porém, ainda que tenhamos adicionado int, float, double ou outro tipo primitivo, o retorno do método será uma referência a um objeto. Dessa forma, o segundo elemento da ArrayList poderia ser obtido assim:



Aqui criamos uma nova instância da classe Integer e atribuímos a ela o resultado de uma chamada ao método get. A conversão de Object para Integer é explícita, já que um Object não é um Integer. Finalmente o valor primitivo é extraído com uma chamada ao método intValue da classe Integer.

Veja agora como reduzir boa parte deste código:



Agora o compilador se encarrega de criar a classe invólucro, converter Object em Integer e extrair o tipo primitivo sem qualquer esforço de nossa parte. Isso é unboxing.

4 - Resumindo

A conversão de um tipo primitivo para o tipo referência correspondente é chamada de boxing e a conversão do tipo referência para o tipo primitivo correspondente é chamada de unboxing.

Sobre o autor deste artigo ou tutorial
Osmar J. Silva
Goiânia - GO
Usuário desde 12/11/2006
Graduado em Ciência da Computação pela UNIP (Universidade Paulista) e atualmente morando em Goiânia-GO. Desde 1998 tem atuado no desenvolvimento de sistemas, seja como responsável principal ou como freelancer ou consultor. Entre as linguagens que já desenvolveu pode-se incluir Java, Delphi, C++, Python, Perl, PHP, Ruby, etc. Alguns projetos já desenvolvidos incluem salas de chat, fóruns, sistemas de gerenciamento de notícias, blogs, sistemas de helpdesk, sites corporativos, sistemas acadêmicos e financeiros. É o proprietário e principal editor de conteúdo do site Arquivo de Códigos.

Atua também como professor do curso de Sistemas de Informação da Faculdade Delta (http://www.faculdadedelta.edu.br)
Este usuário atua como freelancer Veja a relação de freelancers
Veja o perfil completo deste usuário
Pesquise Dicas, Truques, Anotações, Artigos, Tutoriais, etc:
0 Comentários para este tutorial | Clique para inserir um novo comentário
Seja o primeiro a comentar este artigo ou tutorial.
Use este formulário para inserir um novo comentário para este artigo ou tutorial. É preciso estar logado no site. Se você já um usuário registrado, efetue o login no menu esquerdo de nossas páginas.
Título do comentário:
Seu comentário:
Dicas de formatação:
Não é permitido código HTML nos comentários. No entanto, você pode conseguir boas formatações usando:

[b][/b] - para negrito
[ul][/ul] - para listas não ordenadas
[li][/li] - para itens da lista
[pre][/pre] - para exibir trechos de códigos-fonte (de forma a manter a formatação e facilitar a leitura)
Veja mais artigos e tutoriais de Java
Veja mais artigos e tutoriais de outras linguagens
Pesquise Dicas, Truques, Anotações, Artigos, Tutoriais, etc:
Powered by Locaweb
Quem Somos
Bem-vindo ao Arquivo de Códigos. Meu nome é Osmar J. Silva, moro em Goiânia-GO e sou o criador deste site e de todo o material disponível nele. Clique aqui e saiba como posso ajudá-lo atuando como freelancer ou consultor em seus projetos.
Referências
 
http://www.arquivodecodigos.net
2000 - 2009 - Todos os direitos reservados a Osmar J. Silva
Todo o conteúdo deste site, quando não devidamente observado, pertence a seus idealizadores e não
poderá ser usado para outras finalidades senão estudo e aprimoramento de técnicas de programação.
Certifique-se de ler as notas legais antes de proceder com o acesso e leitura do
conteúdo disponibilizado nestas páginas.

Fale Conosco: (62) 3261-7018 / (62) 8185-0734
E-Mail: suporte@recomende.com
MSN: osmar@recomende.com (só para negócios, por favor)

Desenvolvedor Responsável: Osmar J. Silva