Erweiterung von T und SomeInterfaceT in Java

8

Ich möchte eine Klasse erstellen, die zwei Parameter akzeptiert. Einer sollte einfach als T eingegeben werden. Der andere sollte als etwas eingegeben werden, das sowohl T als auch SomeInterface<T> erweitert. Wenn ich das versuche mit

%Vor%

dann beschwert sich Java mit

"Der Typ T ist keine Schnittstelle; er kann nicht als beschränkter Parameter angegeben werden"

und wenn ich stattdessen versuche, eine Schnittstelle für S mit

zu erstellen %Vor%

dann beschwert sich 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 ...?

    
Graeme Moss 30.03.2010, 07:46
quelle

2 Antworten

3

Sie können keine Schnittstelle erstellen, die den Typparameter T erweitert, da es keinen Vertrag gibt, der T als Schnittstelle garantiert. Und natürlich ist eine Erweiterung einer Klasse nicht erlaubt.

    
hleinone 30.03.2010, 08:28
quelle
3

Das funktioniert, wenn Sie auch eine Schnittstelle erweitern:

%Vor%

Aber vielleicht ist es nicht genau das, was Sie wollen ...

    
radu 30.03.2010 08:57
quelle