Pessoal, estou tentando entender uns códigos aqui, mas estou apanhando de uma certa classe ‘I’…
public T find(I id) {
return entityManager.find(clazz, id);
}
O que ela significa?
Pessoal, estou tentando entender uns códigos aqui, mas estou apanhando de uma certa classe ‘I’…
public T find(I id) {
return entityManager.find(clazz, id);
}
O que ela significa?
colega, esse I deve estar errado ai, deve ser erro do codigo
esse I deve ser Integer, int ou Long, depende de como está no atributo da classe que vai pesquisar
onde voce viu esse codigo?
public T find(Long id) { // por exemplo
return entityManager.find(clazz, id);
}
Neste caso o I é provavelmente o parâmetro que indica qual tipo terá a chave primária da entidade.
Esse recurso se chama Generics.
Tanto o I, como o T nesse método representam tipos que serão definidos na hora de usar a classe.
No seu caso, por exemplo, deve existir uma interface assim:
interface Dao<T, I> {
T find (I id);
}
Então, se sua classe Produto, por exemplo, tiver um id que seja long você pode fazer:
class ProdutoDao implements Dao<Produto, Long> ....
Mas se sua classe Aluno, por exemplo, tiver um id que seja string você pode fazer:
class AlunoDao implements Dao<Aluno, String> ....
Reparem que ambos usam a mesma interface, mas parametrizada com tipos diferentes.
AbelBueno, obrigado pelo esclarecimento (:
E se eu tiver um Id que for composto, tem jeito de resolver com isso?