次のコードがあります。
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();
}
}
このコードは次を出力します。
SuperClass: super
SubClass: sub
T: super
私の質問は: T.getName() が SubClass.getName() の値を返さないのはなぜですか? 結局、T == SubClass と指定しました。それとも、ジェネリック参照に対して静的関数呼び出しは無効ですか?
よろしくお願いします!