2

誰かがこの一般的なベクトルVector<? super Object> list = ...とそれをどこで使用するかを説明できますか?

4

4 に答える 4

4

と同じです

Vector<Object> list

通常、「?super Type」は、TypeTypeのスーパータイプを追加できることを意味します

オブジェクトはJavaの最高レベルであるため、スーパータイプはありません。スーパーは必要ありません

もしそうなら

Vector<? extends Object> list

その場合、Objectのサブクラスである任意のオブジェクトを追加できることを意味します。これはJavaのすべてのオブジェクトであるため、次のようになります。

Vector<Object> list

また、VectorではなくListを検討し、スレッドセーフにする場合は、Collections.synchronizedList(...)でラップします。

于 2012-09-11T12:05:31.310 に答える
4

ここでは、未知のオブジェクトの下限を定義しています?。したがって、には、のスーパークラスVector<? super Objectのみを含めることができます。しかし、スーパークラスがないので意味がありません。と同じように動作します。ObjectObjectObjectVector<Object>

このサンプルを参照してください。

これに対応するのは、を拡張する任意のオブジェクトを追加できる上限 です。Vector<? extends Object>Object

Objectジェネリック型がほとんどの場合なので、使用を避けることができるはずです。

于 2012-09-11T12:10:09.583 に答える
3

<? super Object>オブジェクトのスーパータイプがないため、ばかげていますが、許可されており、オブジェクトタイプのみで構成されています。http://www.angelikalanger.com/GenericsFAQ/FAQSections/TypeArguments.html

于 2012-09-11T12:05:28.127 に答える
1

ObjectObjectには、Stringのような不変クラスでextendsを使用するのと同様のスーパータイプがないため、このようなリストにはタイプの要素のみを含めることができます。このようなコレクションには、Stringのみを含めることができます。

于 2012-09-11T12:05:16.847 に答える