1

私は現在プロジェクトに取り組んでおり、次のような数行のコードに出くわしました:

List<Map<Sring, ? super Serializable>> list = new ArrayList<Map<String, ? super Serializable>>();

この構文は私にとってまったく新しいものであり、通常の置換?以外の条件演算子で検索結果を見つけるのに苦労しています。if/else

4

3 に答える 3

3

この構文? super Serializableは、Serializable オブジェクトへの参照を保持できる任意の型を意味します。この特定のケースでは、これは または のいずれMap<String,Serializable>かを意味しますMap<String,Object>

多くの場合、この表記法はデータの受信者に使用され、頭字語PECS : 「生産者拡張、消費者スーパー」に従います。

于 2013-04-30T16:05:42.460 に答える
1

? super Serializable任意の型、>= Serializableつまりキャプチャできる任意Serializableの型とそのスーパータイプを意味します。これは、ジェネリック要素の下限クラスを示します。

あなたの場合、それは Map とorStringを実装する任意のクラスになります。SerializableObject

于 2013-04-30T15:55:00.013 に答える