問題タブ [nested-generics]
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 - Javaのジェネリッククラスでネストされたジェネリックから変数を割り当てますか?
次のコードがある場合:
そして、私はDummyClass<?> dummy
、
できます
エラーなし。
でも、
コンパイルエラーが発生します:
を割り当てdummy.getListSet()
ます。
に代入できないdummy.getListSet()
のはなぜSet<List<?>>
ですか?
c# - Linq で複雑なオブジェクトをフィルター処理する
この複雑なオブジェクトに基づいて IEnumerable リストをフィルタリングする必要があります。ネストされたディクショナリ要素の 1 つで比較演算子を実行する必要があります。現在、親オブジェクトに where 句があります。最も内側の辞書のキー要素の 1 つをフィルター処理する linq 拡張メソッドを作成するにはどうすればよいですか?
java - javaはジェネリックの上に定義されたクラスからジェネリック型を推測できますか?
この他の回答からコードを借りました
私の質問は、このコードに関係しています
IntToStringConverter
を実装しているようIConverter<Integer, String>
にInteger
、タイプは既知ですが、Java にはタイプ入力を回避してタイプするだけString
の推論システムがありませんか?new ConverterUser<IntToStringConverter, Integer, String>()
new ConverterUser<IntToStringConverter>()
java - パラメータを許可するジェネリック。またはパラメータ化可能なジェネリック
私が遊んでいる興味深いアーキテクチャがあります。ユーザーは StoredObject を含む Store を作成できます。ストアは、インターフェイス (つまり、Get、Put、Print) によって表されるさまざまな操作をサポートできます。
これは非常に単純化されたもので、次のようになります。
同様の「get」メソッドを実装したいときに問題が発生します。理想的には、次のようなインターフェイスが必要です。
明らかに、これは不正な Java です。これが意図していることを達成するために使用できる構文 (またはハック) はありますか? 事実上、定数型をジェネリック パラメーターとして指定する代わりに、パラメーター化可能な型をジェネリック パラメーターとして指定したいと考えています (それ自体が get メソッドでパラメーター化されます)。はい、これは Java にはない高次の型に要約されます。クレイジーで醜いハックは大歓迎です!
他の設計上の制約により機能しない一般的なソリューション:
- get/put/etc 操作を内部
Obj
クラスに移動する Store.Obj<T>
ジェネリックパラメーターではなく、スーパータイプを作成し、それを取るインターフェイスを指定します。
java - ジェネリックから型を推測する
以下の例のように、オブジェクト O の型を推測する方法はありますか (これはコンパイルされません)。
したがって、上記の例ではwhereLogSet
を一般的に使用しています。の場合、メソッドの型として使用する の型を推測することは可能ですか?O
O extends LogObject
S extends LogSet
S
O
logUpdated
これを明示的に行う唯一の方法は次のとおりです。
私の質問が理にかなっていることを願っています。