Ich möchte eine Klasse erstellen, die zwei Parameter akzeptiert. Man sollte einfach als T getippt werden. Der andere sollte als etwas eingegeben werden, das sowohl T als auch SomeInterface<T>
verlängert. Als ich dies versuchen, mitErweitern sowohl T als auch SomeInterface <T> in Java
public class SomeClass<T, S extends SomeInterface<T> & T>
dann klagt Java mit
„Der Typ T ist keine Schnittstelle, es nicht als abgegrenzte Parameter angegeben werden kann“
und wenn stattdessen versuche ich, eine erstellen Schnittstelle für S mit
public interface TandSomeInterface<T> extends SomeInterface<T>, T
dann klagt Java mit
"Kann nicht auf den Typparameter T als Supertyp verweisen"
Gibt es eine Möglichkeit, dies in Java zu tun? Ich denke du kannst es in C++ machen ...?
Beachten Sie, dass C++ Vorlagen viel mächtiger sind als Java-Generika. Nur weil es in C++ gemacht werden kann, bedeutet das nicht, dass es in Java gemacht werden kann. –
verwandt: http://Stackoverflow.com/a/13261667/697449 –