|
| 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? |
|
|
|
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)
|
|
|
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.
|
|
|
|
|
|
|
Veja mais artigos e tutoriais de
Java |
|
|
|
Veja mais artigos e tutoriais de outras linguagens |
|
|
|
Pesquise Dicas, Truques, Anotações, Artigos, Tutoriais, etc: |
|
|
|
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 |
|
|
|
|
|
|
|