Bem galera vou direto ao ponto.
Em C# utilizando o NHibernate eu tenho uma classe de persistência complemente genérica:
public class Dao<T> where T : IModel
{...}
Na assinatura da classe essa minha interface IModel garante que toda classe tenha o atributo Id.
Fazendo esse where T : IModel. Qualquer classe que estenda de Dao terá que passar uma classe que implemente IModel, com isso consigo evitar varios cast para IModel em meu Dao. E também se torna impossível passar para a classe Dao uma classe que não tenha os acessos (get e set) do Id. Evitando programadores distraídos.
Andei procurando em java e não achei nada que fizesse algo parecido. Gostaria de saber se há como fazer isso em java e como?
Att. Fernando Leal.