我有以下代码:
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。还是静态函数调用对泛型引用无效?
提前非常感谢!