8

リンクで提供される情報に基づいて、次のように述べています。

とは同じList<Object>ではないことに注意することが重要です。List<?>オブジェクト、またはオブジェクトの任意のサブタイプを に挿入できますList<Object>。ただし、null は にしか挿入できませんList<?>

List<?>のみnull挿入できる場合に使用するのは何ですか?

例えば、

methodOne(ArrayList<?> l):このメソッドArrayListはどのタイプにも使用できますが、メソッド内では 以外は List に追加できませんnull

l.add(null);//(valid)
l.add("A");//(invalid)
4

3 に答える 3

13

リスト (またはコレクション) の型が不明な場合は、無制限のワイルドカードを使用します。

チュートリアルにあるように、リストの内容を印刷するなど、リストに関する情報を取得したいが、含まれている可能性のあるタイプがわからない場合に使用されます。

public static void printList(List<?> list) {
    for (Object elem: list)
        System.out.print(elem + " ");
    System.out.println();
}

リストに値を挿入する場合は使用しないでください。使用できる値は だけです。リストにnull含まれる値がわからないためです。

于 2015-03-30T09:06:52.217 に答える
5

リストから要素を取得できます。

List<?>通常、要素を追加するのではなく、要素を読み取るメソッドなどによって返される型不明のオブジェクトのリストの型として使用されます。

于 2015-03-30T09:04:13.523 に答える