Bounded Types com Generics em Java para Restringir Tipos

Bounded Types em Java: Restrições com Subtipos

Java Generics é uma ferramenta extremamente valiosa para escrever código flexível e seguro. Através de uma funcionalidade chamada Bounded Types (Tipos Limitados), os Generics podem ser ainda mais úteis, permitindo que você restrinja os tipos de dados que uma classe genérica pode aceitar. Neste artigo, vamos explorar os Bounded Types em mais detalhes, com exemplos que enfatizam como é possível restringir os valores com base na propriedade de serem subtipos.

Em nosso ponto de partida, temos a seguinte estrutura de código.

Neste código, a classe genérica MinhaClasseGenerica está sendo limitada para aceitar apenas tipos que sejam subtipos de Number, como evidenciado pelo uso de T extends Number.

Isso significa que qualquer tentativa de instanciar MinhaClasseGenerica com um tipo de dado que não seja um subtipo de Number irá resultar em um erro de compilação. É por isso que a linha MinhaClasseGenerica<String> g2 = new MinhaClasseGenerica(); está comentada com o aviso “// Gera erro”, enquanto as outras duas instâncias, MinhaClasseGenerica<Integer> g2 = new MinhaClasseGenerica(); e MinhaClasseGenerica<Double> g2 = new MinhaClasseGenerica(); não geram erros, pois tanto Integer quanto Double são subtipos de Number.

Agora, vamos expandir nosso exemplo para ilustrar o uso mais amplo de Bounded Types. Primeiro, precisamos expandir a MinhaClasseGenerica para incluir um método setMinhaVariavel(T valor) que definirá um valor e um método imprimeMinhaVariavel() para imprimir este valor.

 

Agora, podemos instantiar MinhaClasseGenerica com diferentes subtipos de Number, passar valores para a instância e imprimir esses valores, como mostra o código a seguir.

Aprenda Java em 5 Dias. Curso 100% Prático.
Melhor Preço por Tempo Limitado. Clique Aqui e Teste Sem Risco.
30 Dias de Satisfação Garantida!

Deste modo, fica claro que os Bounded Types permitem uma restrição segura dos tipos que uma classe genérica pode aceitar, ao mesmo tempo em que mantêm a flexibilidade e a reutilização de código que tornam os Generics tão úteis. Além disso, eles ajudam a prevenir erros de programação ao garantir que apenas os tipos de dados corretos sejam utilizados, aumentando a robustez e a manutenibilidade do código. Por esses motivos, os Bounded Types são uma excelente adição à sua caixa de ferramentas de programação em Java.

Scroll to Top