1. ホーム
  2. java

[解決済み] Javaジェネリックワイルドカード。<? extends Number> と <T extends Number> の比較

2023-05-23 19:43:45

質問

この2つの機能の違いは何ですか?

static void gPrint(List<? extends Number> l) {
    for (Number n : l) {
        System.out.println(n);
    }
}

static <T extends Number> void gPrintA(List<T> l) {
    for (Number n : l) {
        System.out.println(n);
    }
}

同じ出力が表示されます。

どのように解決するのですか?

この場合、以下の理由で違いはありません。 T が再び使われることはないからです。

を宣言する理由は T を宣言する理由は、それを再び参照することで、2つのパラメータ型や戻り値の型を一緒に結合することができるからです。