Senhores,
não compreendi a regra do uso de generics para esse caso, vejam a situação:
public interface BaseDAO<T,Key,Value> {
// exemplo 1 - isso o compilador não aceita
void destroy(T obj);
void destroy(Key id);
// exemplo 2 - isso o compilador aceita
T find(Key key);
List<T> find(Value value);
}
Código baseado no exemplo http://www.guj.com.br/posts/list/66036.java
E observe que se você declarar outros métodos sem o uso de generics, dessa forma:
void destroy(T obj);
void destroy(Integer id);
void destroy();
o compilador aceita… somente quando se usa dois ou mais tipos passados por parâmetros…
A questão aqui é compreender a regra da aplicação do generics, alguém sabe?
vw