汎用 Java メソッドに型引数を明示的に渡すことができないのはなぜですか? 質問する

汎用 Java メソッドに型引数を明示的に渡すことができないのはなぜですか? 質問する

Java 関数を定義しました:

static <T> List<T> createEmptyList() {
    return new ArrayList<T>();
}

これを呼び出す方法の 1 つは次のようになります。

List<Integer> myList = createEmptyList(); // Compiles

ジェネリック型引数を明示的に渡して呼び出すことができないのはなぜですか? :

Object myObject = createEmtpyList<Integer>(); // Doesn't compile. Why?

Illegal start of expressionコンパイラからエラーが発生します。

ベストアンサー1

Java コンパイラが静的メソッドのパラメータ タイプを単独で推測できない場合は、常に完全修飾メソッド名 (Class . < Type > method();) を使用して渡すことができます。

Object list = Collections.<String> emptyList();

おすすめ記事