問題タブ [bounded-wildcard]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 下限のワイルドカードが上限の型パラメーターに対してチェックされない
このコードが正常にコンパイルされるのはなぜでしょうか?
ソースコード:
正常にコンパイルされました
どのように機能し、なぜこれがコンパイルされるのですか? M は任意の型であるのに、なぜ使用できるのでしょうか。次のようにする必要があります<M extends Number>
。これはコンパイルされません:
エラーメッセージ:
型引数 M は型変数 K の境界内にありません。ここで、M、K は型変数です: M extends メソッド useMe(A) で宣言された Object K extends クラス A で宣言された Number
違いはなんですか?
java - ジェネリックキャストの説明が必要
基本型を拡張するジェネリックを操作する 2 つの形式を次に示します。
理解できない。違いはなんですか?どちらのメソッドも、Runnable を拡張するオブジェクトの同じ BlockingQueue を返すようです。
java - Javaのコンストラクタのジェネリック?
この架空のクラスを考えてみましょう (これはオンライン ビデオで見つけました)。
Contrived
ここで、受け入れることができる型変数はNumber
または の一部のサブタイプですNumber
。ただし、クラス自体は から継承するArrayList
ため、クラスが取得する型が何であれ、 の型が決まりArrayList
ます。
というフィールドがありvalues
、これはList<? extends T values>
です。これはどういう意味ですか?list
拡張するものは何でも保持できますかT
(これは拡張しますNumber
)。
PECS (producer extends, consumer super)
原則として、これを使用して要素を読み取ることはできますList
が、に追加することはできませんlist
。
constructor
を渡す必要がある場合、どのように見えますlist of doubles or some type T
か?
java - Java のネストされたジェネリック型
次のメソッドMap<?, ? extends List<?>>
では、単純な型ではなくジェネリック型を使用する必要があるのはなぜですか?Map<?, List<?>>
test()
以下が機能することに注意してください。また、3 つのメソッドの消去タイプはいずれにしても同じであることに注意してください。