[Generic] Interface et classe abstraite générique : implémentation et utilisation
Bonjour,
J'ai une interface générique et une classe abstraite qui implémente cette interface, voilà ce que cela donne :
Code:
1 2 3
| public interface IGeneric<T extends AbstractObject> {
void add(T objet);
} |
Code:
1 2 3 4 5 6 7 8
| public abstract class AbstractGeneric<T extends AbstractObject> implements IGeneric<T> {
public T getById(Long id) {
T result = null;
PersistenceManager pm = ConnexionUtil.get();
result = pm.getObjectById(T.class, id);
return result;
}
} |
Question 1 : Pourquoi, dans la déclaration de la classe abstraite, on est obligé de re-préciser que T doit hériter de AbstractObject alors que IGeneric le "dit" déjà ?
Question 2 : La ligne où je fais le T.class me génère une erreur de compilation, mais je ne vois pas par quoi remplacer. J'ai essayé result.getClass() mais du coup je suis obligée de faire un cast sur le retour (autrement dit, ça ne sert à rien de passer la classe en paramètre). Une idée ?