私はAngelikaLangerGenericsFaqから複数レベルのワイルドカードを読んでいます。私はかなり構文を約 混乱しています。文書はマルチレベルワイルドカードとは何ですか?構文の混乱
言うタイプ
Collection<Pair<String,?>>
は ジェネリックコレクションインターフェイスの具体的なインスタンス化したものです。これは異なるタイプの ペアの異種コレクションです。これには、Pair<String,Long>
,Pair<String,Date>
,Pair<String,Object>
,Pair<String,String>
などの要素を含めることができます。換言すれば、Collection<Pair<String,?>>
は、異なるタイプの対の混合物( 、形式:Pair<String,?>
)を含みます。タイプ
Collection<? extends Pair<String,?>>
はワイルドカード です。それは具体的なパラメータ化された タイプを表していません。 Collection の引数がPair<String,?>
の形式であるコレクションインターフェイスのインスタンス化であるコレクション のファミリーの代表を表します。互換性のあるインスタンス化 は、Collection<Pair<String,Long>>
,Collection<Pair<String,String>>
,Collection<Pair<String,Object>>
またはCollection<Pair<String,?>>
です。 他の言葉では、私たちはそれが というCollectionのインスタンス化の略語を知らない。経験則として、複数レベルのワイルドカードをトップダウンで読む必要があります。
次の点については混乱します。
- 例では、これらの3つの引用符で詳しく説明できますか。私は完全に構文に失われています
- ドキュメントは、para-1はジェネリック型の具体的なインスタンス化であり、その他は具体的なインスタンス化ではないと言いますか?それはどうですか?
- ワイルドカードをトップダウンで読むことは何を意味しますか?
- マルチレベルワイルドカードの利点は何ですか?
誰かがこれらの点を詳述できますか?ありがとう。
このような詳細な説明はありがとうございます。 Collection>を参照してください。具体的にどのように記述すれば、コンパイラは他の型がわからないでしょうか?どのようにしてそれを具体的に表現することができますか? –
benz
@benz。私はちょうどそれの説明を追加しました。編集を確認してください。 –
すばらしい説明Rohit。ありがとうございました。私は同じトピックでもう少し疑問を抱いています。私は仕上げており、ここでそれらを追加することはかなり関連しているので、質問を編集します。 – benz