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

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

c# - ネストされたリストの検索

私はこのデータ構造を持っています:

このコレクションのデータ:

それで:

会議オブジェクトのコレクションがあります。

のような文字列を検索して、のような"uni"組織を持つ会議のコレクションを見つけたい"uni"。これどうやってするの?

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

c# - ネストされたジェネリックス:この場合、コンパイラが型引数を推測できないのはなぜですか?

理解できない型推論エラーに出くわしたとき、趣味のプロジェクトで遊んでいました。私はそれを次の簡単な例に単純化しました。

私は次のクラスと関数を持っています:

次に、次の例を検討してください。

最後の例ではコンパイラエラーが発生しますが、問題なく型引数を推測できるはずです。

質問:<Foo, Bar, Baz>この場合、コンパイラが推測できないのはなぜですか?

更新: 2番目のラムダを恒等関数でラップするだけで、コンパイラーがすべての型を正しく推測することを発見しました。

なぜそれはすべての個々のステップを完全に行うことができますが、一度にすべての推論を行うことはできませんか?コンパイラが暗黙のラムダ型と暗黙のジェネリック型を分析する順序に微妙な点はありますか?

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

c# - 値のネストされた汎用タイプを作成し、それを変数に割り当てます

ここで、タイプの変数アポイントメントをPair<Pair <int, int>, String>作成しました。このタイプの値を作成して、アポイントメントに割り当てます。

誰かが私を助けてもらえますか?私はC#とプログラミングに不慣れです。

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

java - 入れ子になったジェネリックを持つ変換できない型

私はまだ混乱している他の型キャストJavaジェネリックの質問を見ました。

私は次のクラス階層を持っていWeightedThing<T>ます。VectorWeightedVectorWeightedVectorWeightedThing<Vector>

最近隣検索を行い、指定されたクエリ ベクトルとその距離に最も近いベクトルのリストを返したいと考えています。このために、searchメソッドを定義しました:

私ができることを願って

これは機能しません (IntelliJ はエラーとしてマークしませんが、Mac OS X 用の Sun の jdk7u10 でコンパイルすると失敗します)。で同じ関数を呼び出すこともありませんVector。にアップキャストを追加することで強制的にコンパイルできますObjectが、それはひどいようです。

これの目的は、任意のタイプのベクトルを検索して追加できるようにすることですが、WeightedVectors のみを追加したことがわかっている場合は、結果を WeightedVectors にキャストしたいと考えています。

0 投票する
5 に答える
1589 参照

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

次の例では:

second(b) の呼び出しは機能するのに、fourth(a) の呼び出しは機能しないのはなぜですか?

次のエラーが表示されます。

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

java - Javaで二重ジェネリック型のクラスを取得またはインスタンス化する方法はありますか?

だから私が持っていると言う:

そして、Foo<T>を構築するためにFactoryの実装を作成したいと思います。

2つの質問:

  1. 私が持っているのがClass<T>だけの場合、Class <Foo <T >>を取得する方法はありますか?残念ながら、Fooはプライベートクラスであるため、全体像(つまり、Tがどうなるかについての知識)を持つ唯一のコードはFooについて知ることができず、したがってClass <Foo<T>>を与えることができません。
  2. これについてもっと良い方法はありますか?

ありがとう!

PS詳細をお求めの方は、こちらをご覧ください。完全な話は、FooとFooFactoryの両方が外部クラスのプライベートクラスになるということです。Fooは外部クラス全体で広く使用されており、誤ったガベージコレクションを回避するために、ObjectPoolを使用して、Fooのインスタンスを常に更新してガベージコレクションするのではなく、インスタンス化したいと考えています。ただし、ObjectPoolを使用するには、Factory <Foo <T >>が必要であり、Outer <T>の内部では、Outer<T>がインスタンス化されたときにTがどうなるかがわかりません。

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

java - Is there any point in in Android coding?

I tried to define a class that wraps android.view.View and its subclasses, and contains some info on rendering (people might call it as View Model or PresentationModel).

My primal question is if I should make the type of the view variable parameterized or not. Java's Generic implementation seems to be rather simple (e.g. all the type parameter info is erased at compile time), and I can find two possible merits here.

1) Downcasting looks, say, cooler, even if I still have to specify the type somewhere in my codes.

With above,

becomes

2) I may be able to write some polymorphic codes;

If a method were redefined by some subclasses,

with above,

might behaves differently depending on the type parameter we gave. The biggest problem is I don't know if there is any actual override case in Google's android framework.

Currently, I'd avoid using Generics, since apparently I can't use HashMap with the generic class.

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

java - Javaでワイルドカードの二重使用を宣言する

メソッドの出力に対して完全にジェネリックな型を宣言するのに問題があります。状況は次のとおりです。

私のコードでは、これらのいずれかを持っています。

しかし、私が電話するとき

コンパイラを満足させる唯一の方法は、宣言することです

しかし、ジェネリックをより具体的にして宣言したいと思います

ただし、各ワイルドカードは個別であるため、コンパイラはこれが正しくないことを訴え、ワイルドカードから変換できないことを示します。

この状況を正しく宣言する方法はありますか?

参考までに、クラス A、B、および C は外部ライブラリからのものです。インスタンスを次のように宣言しようとしました

しかし、それは私が制御できない 4 番目のクラスのメソッドの結果でもあります。

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

java - これらのジェネリックが OpenJDK7 ではコンパイルされず、OpenJDK6 ではコンパイルされる理由

OpenJDK6 では正常にコンパイルされますが、OpenJDK7 では次のようになります。

Alert はパラメータ化する必要があるため、行 50 に rawtype 警告があることに注意してください。これを行うと、たとえばextends BaseController<Alert<Object>>、コードがコンパイルされます。しかし、getModelClass() を実装する必要があるため、それはできません。

更新: これは Java 6 実装のバグで、Java 7 で修正されました: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6559182。(そして、コンパイラ開発者への私の質問は次のとおりです: http://openjdk.5641.n7.nabble.com/Nested-generics-don-t-compile-in-1-7-0-15-but-do-in-1 -6-0-27-td121820.html )

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

java - Java:「チェックされていない操作または安全でない操作を使用します。...で再コンパイルしてください。」

私の苦境への答えを探してかなりの時間を費やし、Java教科書のジェネリックスの章を読み直したにもかかわらず、次のコードの問題を修正できないようです。

特に、次のメッセージを含むポップアップが表示されます。

ここにあるIまたはComparableのほぼすべての組み合わせは、依然としてそのようなポップアップにつながります。私はプログラミングにBlueJ環境を使用していますが、これにより、詳細を表示するために関連するコンパイラー引数を組み込むことができなくなります。

これまでの調査からわかる限り、これは内部クラスがIジェネリック型を利用しているため、「RedBlackNodeはComparableを実装している」という事実と関係があり、RedBlackNode内部クラスのcompareToメソッドはそれに対処する必要があります。どういうわけか事実。

この質問はstackoverflowやその他の場所で何度も質問され、何度も回答されていることは知っていますが、これらのインスタンスから学んだことを自分のケースに適用することはできないようです。私はジェネリックスにかなり慣れていないので、ここで私が得ることができるどんな助けも非常にありがたいです!