Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da Easy Java Magazine
ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Wrapper: Explorando as classes - Revista easy Java Magazine 17
Trata das classes wrappers, que empacotam tipos primitivos, as diferentes maneiras de criar esses objetos, métodos utilitários que são usados principalmente na conversão entre primitivos e Strings e os recursos boxing/unboxing.
[fechar]
Você não gostou da qualidade deste conteúdo?
(opcional) Você gostaria de comentar o que não lhe agradou?
Easy Java Magazine 17
[Artigo disponível no Leitor Digital DevMedia. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Easy Java Magazine 17
[Artigo disponível no Leitor Digital DevMedia. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Easy Java Magazine 17
Sempre se ouviu dizer que Java é uma linguagem cujo paradigma é a orientação a objetos. No entanto, também se sabe que comumente lidamos nas aplicações com os tipos denominados primitivos. E lidar com tipos primitivos juntamente com objetos sempre foi uma necessidade do desenvolvedor. Mas, antes de Java 5, tais tipos não poderiam ser adicionados em um ArrayList, por exemplo, pois o método add() desse collection aceita apenas objetos como argumento. Assim, o código da Listagem 1 não funcionará em versões de Java anteriores a 1.5.
Listagem 1. Tentando adicionar um primitivo em um collection.
int i = 5;
ArrayList a = new ArrayList();
a.add(i);
A solução para isso é tratar os primitivos como objetos usando o que chamamos classes wrapper (empacotadora). Há uma classe wrapper correspondente a cada tipo primitivo em Java. Uma classe empacotadora encapsula um único valor de um tipo de dado primitivo. Por exemplo, a classe Integer deve tratar um valor int.
Uma outra situação em que as classes wrapper são úteis é quando precisamos converter um objeto em um tipo de dado primitivo. Por exemplo, digamos que em nossa aplicação, uma interface gráfica do usuário solicite que seja digitada a idade de uma pessoa em uma caixa de texto JTextField. Contudo, sabemos que caixas de textos retornam seu conteúdo em uma String, o que requer uma conversão para int de maneira que possamos realizar cálculos com a idade na aplicação.
Para completar os casos que justificam o uso de classes empacotadoras, citamos o fato de que os primitivos não têm métodos. Os métodos relacionados a um tipo primitivo encontram-se na classe wrapper correspondente. Dessa forma, se for necessário manipular um tipo primitivo em nossa aplicação, devemos consultar a documentação da classe empacotadora referente ao tipo, para verificar se a operação que desejamos é oferecida por algum método da classe.
As classes wrapper existem desde a versão 1.1 da linguagem, mas só a partir da versão 1.5 que foram implementados os recursos de boxing e unboxing, que estudaremos neste artigo. Além disso, iremos apresentar o uso dessas classes em situações como: instanciação, sobrecarga e conversão de tipos, entre outras. Veremos que os recursos de boxing e unboxing são os que permitem que o código da Listagem 1 funcione nas versões mais recentes de Java.
Visão geral das classes wrapper
Cada tipo primitivo em Java possui uma classe empacotadora correspondente. Por exemplo, a classe wrapper para int é Integer, para float é Float, e assim por diante, conforme pode ser visto na Tabela 1. Observe que o nome do tipo primitivo é simplesmente o mesmo nome da classe wrapper em minúsculas, exceto o tipo char, que corresponde a Character, e int, cuja classe correspondente é Integer. Na Tabela 1 podemos observar também quais os possíveis argumentos que podem ser passados ao construtor de cada classe.
"
Este é um post disponível para assinantes MVP
Listagem 1. Tentando adicionar um primitivo em um collection.
int i = 5;
ArrayList a = new ArrayList();
a.add(i);
A solução para isso é tratar os primitivos como objetos usando o que chamamos classes wrapper (empacotadora). Há uma classe wrapper correspondente a cada tipo primitivo em Java. Uma classe empacotadora encapsula um único valor de um tipo de dado primitivo. Por exemplo, a classe Integer deve tratar um valor int.
Uma outra situação em que as classes wrapper são úteis é quando precisamos converter um objeto em um tipo de dado primitivo. Por exemplo, digamos que em nossa aplicação, uma interface gráfica do usuário solicite que seja digitada a idade de uma pessoa em uma caixa de texto JTextField. Contudo, sabemos que caixas de textos retornam seu conteúdo em uma String, o que requer uma conversão para int de maneira que possamos realizar cálculos com a idade na aplicação.
Para completar os casos que justificam o uso de classes empacotadoras, citamos o fato de que os primitivos não têm métodos. Os métodos relacionados a um tipo primitivo encontram-se na classe wrapper correspondente. Dessa forma, se for necessário manipular um tipo primitivo em nossa aplicação, devemos consultar a documentação da classe empacotadora referente ao tipo, para verificar se a operação que desejamos é oferecida por algum método da classe.
As classes wrapper existem desde a versão 1.1 da linguagem, mas só a partir da versão 1.5 que foram implementados os recursos de boxing e unboxing, que estudaremos neste artigo. Além disso, iremos apresentar o uso dessas classes em situações como: instanciação, sobrecarga e conversão de tipos, entre outras. Veremos que os recursos de boxing e unboxing são os que permitem que o código da Listagem 1 funcione nas versões mais recentes de Java.
Visão geral das classes wrapper
Cada tipo primitivo em Java possui uma classe empacotadora correspondente. Por exemplo, a classe wrapper para int é Integer, para float é Float, e assim por diante, conforme pode ser visto na Tabela 1. Observe que o nome do tipo primitivo é simplesmente o mesmo nome da classe wrapper em minúsculas, exceto o tipo char, que corresponde a Character, e int, cuja classe correspondente é Integer. Na Tabela 1 podemos observar também quais os possíveis argumentos que podem ser passados ao construtor de cada classe.
"
A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da Easy Java Magazine
ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Carlos Araújo
É professor do curso de Sistemas de Informação no Centro Universitário Luterano de Santarém – Pará. Leciona Estruturas de Dados e Linguagem de Programação Orientada a Objetos usando Java, desenvolve sistemas há 20 anos e é certificado SCJP. Mantém o blog http://professorcarlos.blogspot.com.
O que você achou deste post?
Cursos relacionados
Publicidade



