私はJava関数を定義している:それを呼び出すためにタイプ引数を汎用Javaメソッドに明示的に渡すことができないのはなぜですか?
static <T> List<T> createEmptyList() {
return new ArrayList<T>();
}
一つの方法は、それほどのようなものです:
List<Integer> myList = createEmptyList(); // Compiles
は、なぜ私は明示的にジェネリック型引数を渡すことで、それを呼び出すことはできませんか? :
Object myObject = createEmtpyList<Integer>(); // Doesn't compile. Why?
コンパイラからエラーIllegal start of expression
が返されます。
Cheekysoftは理由を説明するが、あなたは本当に必要性が単に静的な関数呼び出しの前にクラス名を追加し、第二のタイプのDEFを追加感じる場合: 一覧ます。myList = MyClassの。 createEmptyList(); –