Je veux créer une classe qui prend deux paramètres. L'un devrait être tapé simplement comme T. L'autre devrait être tapé comme quelque chose qui s'étend à la fois T et SomeInterface<T>
. Lorsque je tente cela avecÉtendre à la fois T et SomeInterface <T> en Java
public class SomeClass<T, S extends SomeInterface<T> & T>
alors Java se plaint avec
« Le type T n'est pas une interface, il ne peut pas être spécifié comme un paramètre borné »
et si au lieu que je tente de créer un Interface S avec
public interface TandSomeInterface<T> extends SomeInterface<T>, T
alors Java se plaint avec
"Impossible de se référer au paramètre de type T en tant que supertype"
Y a-t-il un moyen de le faire en Java? Je pense que vous pouvez le faire en C++ ...?
Notez que les modèles de C sont beaucoup plus puissants que les médicaments génériques Java. Ce n'est pas parce que cela peut être fait en C++ que cela peut être fait en Java. –
related: http://stackoverflow.com/a/13261667/697449 –