問題タブ [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 - コレクションとコレクションの違いは何ですか
私は主にC#開発者であり、友人にデータ構造を教えていました。彼らは大学でJavaを使用しており、Javaでそのような表現を見ました。
私はC#でそのようなことを見たことがないので、JavaCollection<T>
との違いは何だろうか?Collection<?>
上記のように書いていたのではないかと思います。ドキュメントの男は比較Collection<Object>
してCollection<T>
いましたが。
例はhttp://docs.oracle.com/javase/tutorial/extra/generics/wildcards.htmlから取得されます
java - オブジェクトを無制限のワイルドカードにキャストする必要があります....しかし、私の場合はどうですか?
無制限のワイルドカードが原因で、マップにオブジェクトを配置できません。私はワイルドカードに慣れていません。(私にとって..)難しいのは、コンストラクターの入力タイプ(つまりmyMap)を変更できないことですが、マップにオブジェクトを配置する必要があります。
誰か助けてくれませんか..?前もって感謝します!
java - バインドされていないワイルドカードと生の型の違い
ジェネリックについて読んでいましたが、バインドされていないワイルドカードの必要性と、生の型との違いがわかりませんでした。この質問を読みましたが、まだはっきりとわかりませんでした。バインドされていないワイルドカードの Java チュートリアル ページで、次の 2 つのポイントを下回り、最初のポイントを理解できませんでした。
Object
クラスで提供される機能を使用して実装できるメソッドを作成している場合。- コードが、型パラメーターに依存しないジェネリック クラスのメソッドを使用している場合。たとえば、
List.size()
またはList.clear()
. 実際、Class<?>
のほとんどのメソッドはClass<T>
に依存しないため、 が頻繁に使用されT
ます。
誰かが、バインドされていないワイルドカードと素人の言語での生の型の違いを説明できますか?
List<?>
との違いはList<Object>
?
java - リストとリストの違い
私はこれについてたくさん読んだことがあり、次のことを知っています:
今、私は次のことが大丈夫であることを読みました:
と
それで:
でも:
例:
そのタイプは何でもかまいませんので、ワイルドカードリストに何も追加できない理由を理解しています。しかし、なぜ undefinedList に追加できるのでしょうか?? (1) と (2) を考えると、それらは同じように見え、同じ動作を示します。
java - Generics Java、無制限のワイルドカード
Oracle http://docs.oracle.com/javase/tutorial/collections/interfaces/collection.htmlが提供する Java チュートリアルから直接こんにちは
コンパイル時の型消去を認識しています。また、タイプ (無制限) がオブジェクトに置き換えられることも認識しています。コンパイル時に無制限のワイルドカードを使用してコンパイラが行うことを認識していますか? 生タイプだったので外すだけ?
前もって感謝します。
java - 互換性があるはずの互換性のないワイルドカード タイプ
この質問に続いて、解決策を提供しますが、説明していません(残念ながら、回答のリンクは現在死んでいます):
次の方法を取ります。
簡単ですよね?ただし、これは jdk1.7.0_25 でのコンパイルに失敗します。
なんてこと?Map.entrySet()
は type のオブジェクトを返すように指定されているSet<Map.Entry<K, V>>
ため、上記の例では をmyMap.entrySet()
返しますSet<Map.Entry<?, ?>>
。しかし、それはコンパイルされません!
さらに奇妙なことに、上部のリンクされた質問から、メソッドをこれに変更するとコンパイルされます。
なんだ???aを呼び出すentrySet
と aMap<?, ?>
が返さSet<Map.Entry<K, V>>
。これは、 type の変数には代入できませんがSet<Map.Entry<K, V>>
、タイプSet<? extends Map.Entry<K, V>>
?????
ここで何が起こっているのかを明らかにできる人はいますか? これは、少なくとも 2 レベルの深さのワイルドカード型を使用してメソッドを記述するときはいつでも、? extends ...
どこかに作成することを覚えておく必要があるということですか?
java - java java.util.List インターフェイスのさまざまなパラメータ タイプの意味
違いは何ですか
public List<?> myList;
と
public List<String> myList;
後者がList
myList オブジェクト (文字列) を格納することはわかっていますが、最初のオブジェクトが何をするのかはわかりませんtype
。
java - Java Method Unbounded Type or Class Return
I was reading this article, , about subclassing a builder class. I understood the article but there was one small bit that bothered me. There was this method,
When I changed Builder<?>
to Builder
, a raw type, the compiler would not compile the code. The error was,
What was the additional information passed to the compiler using the additional <?>
? I suspected it was the compiler which could not figure the right instance during compilation. If I remove the comment markers in (A) the code compiled and ran fine. All the time it was referring to the Rectangle instance. So, my guess is it was the compiler which failed.
It would be great if someone can point me to an article that explains this or leads to find out more information to this. Thanks.
I have pasted the code here:
java - Java のネストされたジェネリック型
次のメソッドMap<?, ? extends List<?>>
では、単純な型ではなくジェネリック型を使用する必要があるのはなぜですか?Map<?, List<?>>
test()
以下が機能することに注意してください。また、3 つのメソッドの消去タイプはいずれにしても同じであることに注意してください。