segunda-feira, 25 de fevereiro de 2008

Genéricos em JAVA - avançado

No post anterior; Genéricos em JAVA - Básico, foi mostrada a utilização de Genéricos através da definição dos tipos que as Collections conteriam. Além deste tipo de utilização de genéricos, pode-se utilizar este conceito para definir métodos genéricos!!!

Este tipo de declaração permite definir um tipo que um método pode retornar, e/ou até mesmo
os tipos de dados dos parâmetros de um método podem ser genéricos.

Vamos direto a um exemplo:

public class TesteMetodoGenerico {

public static <T extends Book> void imprime(T book) {
book.setContent("conteudo1");
book.setName("myamotto musashi");
book.setId(1);

System.out.println(book.getId() + " " + book.getName());
}
}


Exemplo de utilização:
TesteMetodoGenerico m = new TesteMetodoGenerico();
m.imprime(new SecretBook()); // secretBook é um subtipo de Book


O exemplo acima declara um método que pode receber como parâmetro um objeto do tipo Book ou qualquer subtipo do mesmo.
Este tipo de declaração é definido como limite superior, ou Upper Bounds.

Também pode-se utilizar métodos genéricos porém com limites inferiores, ou seja, Lower Bounds.

Para lower bounds, ao invés de utilizar a palavra chave extends no generics, utiliza-se super. Vamos analisar o código abaixo:

...

este artigo ainda não está completo,
aguarde o restante em breve...

Nenhum comentário:

Postar um comentário