続・思いつき
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メソッドを呼ぶという実装でも構わないはずだが、混乱を避けるために制限しているのかな。