続・思いつき
extendsを指定してあるのでstaticメソッドの存在は確定しているはずだが、それでもGeneric型からstaticメソッドを呼ぶことは出来なかった。*1Genericsが扱うのはTypeであって、Classではないということなのだろう。
public class Test {
static public < T extends Test> void call() {
Test.print();
Test2.print();
//T.print();//駄目
}
static public void print() {
System.out.println("Test");
}
static public void main(String[] args) {
Test.call();
}
static class Test2 {
static public void print() {
System.out.println("Test2");
}
}
}
*1:常に親Classのstaticメソッドを呼ぶという実装でも構わないはずだが、混乱を避けるために制限しているのかな。