Angenommen, ich habe die folgende statische Methode und Schnittstelle (Liste ist java.util.List). Beachten Sie, dass die statische Methode für den Platzhaltertyp der Liste ein "Super Foo" erzwingt.
%Vor%Ich möchte in der Lage sein, eine Klasse hinzuzufügen, die die Schnittstelle mit der statischen Methode wie folgt implementiert:
%Vor%Dies wird offensichtlich nicht kompiliert, weil T nicht die "super Foo" Einschränkung hat. Ich sehe jedoch keine Möglichkeit, die Einschränkung "Super Foo" hinzuzufügen. Zum Beispiel - das Folgende ist nicht legal:
%Vor% Gibt es eine Möglichkeit, dieses Problem zu lösen - idealerweise ohne StaticMethod
oder MyInterface
zu ändern?
Ich gehe hier ein bisschen aus, aber ich denke, hier ist die untere Grenze das Problem, weil Sie über die tatsächliche Klasse Bescheid wissen müssen, die der Grenze entspricht, wenn Sie darauf verweisen ... Sie können die Vererbung nicht verwenden .
Hier ist eine Verwendung, die kompiliert, aber beachten Sie, dass ich die tatsächliche Klasse nennen muss, die ein Super von Foo ist:
%Vor%Kommentare?
ps. Ich mag die Frage:)