Ich habe den folgenden Code machen:kann nicht statisch Verweis auf allgemeine Unterklasse (Java)
class SuperClass {
public static String getName() { return "super"; }
}
class SubClass extends SuperClass {
public static String getName() { return "sub"; }
}
public class Dummy<T extends SuperClass> {
public void print() {
System.out.println("SuperClass: " + SuperClass.getName());
System.out.println("SubClass: " + SubClass.getName());
System.out.println("T: " + T.getName());
}
public static void main(String[] args) {
new Dummy<SubClass>().print();
}
}
Dieser Code gibt die folgende:
SuperClass: super
SubClass: sub
T: super
Meine Frage ist: Warum nicht T .getName() gibt den Wert von SubClass.getName() zurück? Immerhin habe ich T == SubClass angegeben. Oder sind statische Funktionsaufrufe für generische Referenzen ungültig?
Vielen Dank im Voraus!
Ok, das ist soweit klar. Aber wie kann ich dann die statische Methode SubClass.getName() von Dummy mit T aufrufen? Ich möchte viele weitere Unterklassen haben, bei denen Dummy getName() transparent aufrufen kann. – JeffreyHammansson