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

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

java - API 呼び出しで複数のワイルドカードを使用する方法

私は Anthill (UrbanCode/IBM 製品) を使用しており、メソッドの 1 つに type のパラメーターが必要java.lang.Class<? extends SourceConfig<?>> sourceConfigTypeです。

ジェネリックに関するチュートリアルを読んだ後、クラスGitSourceConfigが のサブクラスであることがわかりましたが、このコンテキストでSourceConfigジェネリックがどのように機能するかわかりません。SourceConfig<?>何か案は?

最終的な目標は、オブジェクトを取得して/メソッドGitSourceConfigを呼び出すことです。Anthill Pro API はここにあり、クラスを見ています。getRepositoryUrlsetRepositoryUrlSourceConfig

0 投票する
3 に答える
3927 参照

java - リストから変換できませんリストへ>

生のリストは問題なく変換されList<?>ます。生のリストのリストを のリストに変換できないのはなぜList<?>ですか?

バックストーリー( xy問題を軽減するため):

私が使用している API は return を返しますList<JAXBElement>。私はそれが常にであることをたまたま知っていますList<JAXBElement<String>>。ループして独自の をビルドする予定List<String>ですが、 を書くときに未加工の型コンパイラの警告を修正しようとしました (抑制はしません) List<JAXBElement> raw = api();

私は試した:

しかし、これらはタイプの不一致エラーを引き起こします。

興味深いことに、これは警告もエラーも発生しません。

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

java - パラメータ化されたクラスのJavaジェネリック:無制限のワイルドカードと生の型

パラメータ化されたインターフェイス RestHandler があります。

そして、Class.forName を使用して構成からクラスを作成する必要があります。今、すべてが正常にコンパイルされる 3 つのバージョンを考え出しました。

バージョン 1:

バージョン 2:

バージョン 3:

私の質問は、なぜそれらがすべて機能し、どれがベストプラクティスになるのでしょうか?

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

java - scala からワイルドカード Java 関数を呼び出す方法

いくつかの汎用コンテナを含む Java ライブラリがあります。

それらの具体的なインスタンスを取得するファクトリメソッド

また、ワイルドカード テーブルを型指定するユーティリティ メソッドもあります (値のキャストと変換によって)

(IColumnValues のパラメーターとして ? の代わりに V を使用することに注意してください)

Java では、次のように呼び出して、Double の値を持つテーブルを取得できます。

ただし、Scala では、同じ呼び出しを機能させることができないようです。

結果:

Optional.empty() の代わりに null を使用して試してみたところ、次のようになりました。

実際に関数を渡すことができるように、IColumnValues に指定されたワイルドカードをトラップする補助的な方法も試しました。フィット。

Java ライブラリを一気に変更できますが、Scala と Java は完全に相互運用可能であるため、何かが欠けているに違いないと思います。

javaを変更せずにscalaからgetPureTypedTableを呼び出す方法はありますか? (コンバーター関数が null または空のオプションではない場合)

PS: 金曜日の遅い投稿で長々と申し訳ありませんが、私はこれをしばらく見つめていました。

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

java - Java - 抽象クラスの子からメソッドを呼び出す

次の抽象クラスがあるとします。

および次の子クラス:

私は呼び出し元のメソッドからこのようなことをしたいと思っています:

どこで、次のようにcreateVersionResponse(...)なりcreateVersionVO(...)ます。

VersionVOV1 は次のようになります。

このコード行をコンパイルしようとすると、私の問題が発生します。

getVersionInfo(...)。次のようなメッセージが表示されます。

タイプ BaseVersionResponse のメソッド populate(capture#3-of ?) は、引数 (BaseVO) には適用されません。

上記のpopulate方法で。

コードのこの時点では、 baseVersionResponse は実際には特定の子インスタンスであるため、クラスはその特定の子クラスからどの populate メソッドを呼び出すかを正確に認識しているというのが私の考えでした (これは明らかに正しくありません)。

ここで何が間違っていますか?これが正しいアプローチでない場合、これを行うためのより良い方法はありますか?

お時間をいただきありがとうございます!

0 投票する
3 に答える
896 参照

java - null 値しか挿入できない場合、List の目的は何ですか?

リンクで提供される情報に基づいて、次のように述べています。

とは同じList<Object>ではないことに注意することが重要です。List<?>オブジェクト、またはオブジェクトの任意のサブタイプを に挿入できますList<Object>。ただし、null は にしか挿入できませんList<?>

List<?>のみnull挿入できる場合に使用するのは何ですか?

例えば、

methodOne(ArrayList<?> l):このメソッドArrayListはどのタイプにも使用できますが、メソッド内では 以外は List に追加できませんnull

0 投票する
3 に答える
581 参照

java - Java では、通常のジェネリックではできないワイルドカードでできることは何ですか?

私はJavaが初めてです。この ドキュメントでは、ワイルドカードを使用するユースケースとしてこれを示しています

これが彼らの解決策です:

しかし、ワイルドカードなしで同じことができます:

通常のジェネリックは機能しないが、ワイルドカードは機能する簡単なユースケースを誰かに教えてもらえますか?

更新: ここの回答Java Generics でいつワイルドカードを使用するのですか? ワイルドカードの必要性を教えないでください。実際にはその逆です。

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

scala - バインドされていないワイルドカード タイプ

を取得したとき、私は Scala REPL で遊んでいましたerror: unbound wildcard type。私はこの(役に立たない)関数を宣言しようとしました:

このエラーが発生するのはなぜですか?

名前付き型変数を導入せずにこの関数を宣言することは可能ですか? もしそうなら、どのように?