Génériques, imposer une contravariance
Bonjour tout le monde,
bon le titre n'est peut être pas très parlant, voici mon problème :
Soit les classes suivantes
Code:
1 2 3
| class Foo<T> {
T value;
} |
Code:
1 2 3 4 5 6 7
| class Bar<A> {
// le type B doit être un super type de A
<B> B bar(Foo<B> foo) {
return foo.value;
}
} |
Pour la méthode bar, je voudrais imposer que le type B soit un super type du type A défini pour la classe. Un peu comme si on pouvait définir <B super A> (ce qui n'est pas le cas).
Savez vous comment faire ?
Merci d'avance.
le y@m's