問題タブ [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.

0 投票する
4 に答える
214 参照

java - 下限のワイルドカードが上限の型パラメーターに対してチェックされない

このコードが正常にコンパイルされるのはなぜでしょうか?

ソースコード:

正常にコンパイルされました

どのように機能し、なぜこれがコンパイルされるのですか? M は任意の型であるのに、なぜ使用できるのでしょうか。次のようにする必要があります<M extends Number>。これはコンパイルされません:

エラーメッセージ:

型引数 M は型変数 K の境界内にありません。ここで、M、K は型変数です: M extends メソッド useMe(A) で宣言された Object K extends クラス A で宣言された Number

違いはなんですか?

0 投票する
2 に答える
89 参照

java - ジェネリックキャストの説明が必要

基本型を拡張するジェネリックを操作する 2 つの形式を次に示します。

理解できない。違いはなんですか?どちらのメソッドも、Runnable を拡張するオブジェクトの同じ BlockingQueue を返すようです。

0 投票する
1 に答える
319 参照

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か?

0 投票する
2 に答える
18995 参照

java - Java のネストされたジェネリック型

次のメソッドMap<?, ? extends List<?>>では、単純な型ではなくジェネリック型を使用する必要があるのはなぜですか?Map<?, List<?>>test()

以下が機能することに注意してください。また、3 つのメソッドの消去タイプはいずれにしても同じであることに注意してください。