Parfois, dans mon code, je voudrais me référer à (ce que je pense comme) le type implicite dans une hiérarchie générique (essentiellement le type impliqué par le premier? Dans ce qui suit).Puis-je simplifier cette Hiérarchie Java Generics
public class Foo<BAR extends Bar<?>> {
public void t(BAR x) {
List l = new ArrayList();
Object baz = x.makeBaz(null);
l.add(baz);
x.setBazList(l);
}
}
public interface Bar<BAZ extends Number> {
public BAZ makeBaz(Object arg1);
public List<BAZ> getBazList();
public void setBazList(List<BAZ> baz);
}
Par exemple, dans le code ci-dessus serait-il possible de remplacer les lignes
List l = new ArrayList();
Object baz = x.makeBaz(null);
avec quelque chose en utilisant les médicaments génériques?
Je préférerais ne pas avoir à écrire:
public class Foo<BAZ extends Number, BAR extends Bar<BAZ>> {
public void t(BAR x) {
List<BAZ> l = new ArrayList<BAZ>();
BAZ baz = x.makeBaz(null);
l.add(baz);
}
}
car il se sent naturel de forcer ce sur la déclaration de toutes les classes dérivées.
Je sais que ce qui précède est un peu artificiel, mais c'est beaucoup plus simple que d'essayer d'afficher le code que je regarde.
par la façon dont on l'appelle "aide de capture": http://www.ibm.com/developerworks/java/library/j-jtp04298.html# 3.0 – newacct