問題タブ [unbounded-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 - Casting bounded wildcard to unbounded wildcard within a generic type is an error (X> to X>
Consider this sample:
In other words, I can assign a Class<? extends T>
to a Class<?>
for some arbitrary T
but not a Set<Class<? extends T>>
to a Set<Class<?>>
.
It probably has something to do with some limitation on covariance/contravariance, but what?
I could introduce a cast: Class.class::cast
would do it. But is there a way to bend the compiler to my will with subtle type-fu rather than bashing it in the head with a cast?
java - 試行 #3: Java で 2 つの疑問符を使用して必要な型の式を形成できません
以前の SSCCE 自体が正しくありませんでした。もう1つ書いてみましたが、それも間違っていました。したがって、今のところ問題を理解していないため、純粋なJavaの例を書くことができないため、ライブラリクラスの例を投稿しています:
callback
質問は同じです:適切なクラスを準備するにはどうすればよいですか?
不可能な場合は、まず、本当に不可能であると述べてください。次に、なぜ不可能なのかを説明してください。
アップデート
コールバックを指定Object
しても役に立ちません:
java - パラメーター、フィールド、ローカル変数の型、またはメソッドの戻り値の型としてワイルドカード (?) を使用できないのはなぜですか?
ジェネリックのワイルドカードに関する Oracle のドキュメントには、次のように書かれています。
ワイルドカードはさまざまな状況で使用できます。パラメーター、フィールド、またはローカル変数の型として。戻り値の型として使用されることもあり ます (ただし、より具体的なプログラミング方法を使用することをお勧めします)。
次のクラスで 4 つすべてを試しましたが、それぞれでコンパイラ エラーが発生しました。なんで?私は何を間違っていますか?
java - Javaでの無制限のワイルドカードとジェネリック型の使用の違いは何ですか?
Generic type を使用して問題を解決できる場合、Java が無制限のワイルドカードを提供した理由。例えば
Method 2が私たちの要件を解決できるかどうか、なぜMethod 1が必要なのか、誰でも理解できるようにしてください。つまり、Unbounded ワイルドカードを使用して解決できる問題と、汎用メソッド タイプ (方法 2 など) を使用して解決できない問題はどれですか?