問題タブ [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 ジェネリクス キャストでのタイプ セーフ警告の意味は何ですか?
Java 警告の意味は何ですか?
型の安全性: Object から List<Integer> へのキャストは、実際には消去された型 List に対してチェックしています
次のコードのように、オブジェクトを一般的な情報を持つ型にキャストしようとすると、この警告が表示されます。
c# - ジェネリック型変換 FROM 文字列
別のクラスの「プロパティ」を格納するために使用したいクラスがあります。これらのプロパティには、単に名前と値があります。理想的には、型指定されたプロパティを追加できるようにして、返される「値」が常に希望する型になるようにすることです。
型は常にプリミティブでなければなりません。このクラスは、基本的に名前と値を文字列として格納する抽象クラスをサブクラス化します。このサブクラスは、基本クラスにいくつかの型安全性を追加するという考えです (また、いくつかの変換で私を節約します)。
だから、私は(おおよそ)これであるクラスを作成しました:
質問は次のとおりです。
文字列からプリミティブに戻す「一般的な」方法はありますか?
全体的に変換をリンクする一般的なインターフェイスを見つけることができないようです ( ITryParsableのようなものが理想的でした!)。
c# - ジェネリック型チェック
プリミティブに渡される型を強制/制限する方法はありますか? (bool、int、string など)
これで、ジェネリック型パラメーターをwhere句を介して型またはインターフェイスの実装に制限できることがわかりました。ただし、これはプリミティブ (AFAIK) の法案には適合しません。なぜなら、それらはすべて共通の基盤を持っているわけではないからです (誰かが言う前のオブジェクトは別として!:P)。
したがって、私の現在の考えは、歯を食いしばって大きなswitchステートメントを実行し、失敗時にArgumentExceptionをスローすることです。
編集1:
明確にするために:
コード定義は次のようになります。
そしてインスタンス化:
編集2
@Jon Limjap - 良い点、そして私がすでに考えていたこと。型が値型か参照型かを判断するために使用できる汎用メソッドがあると確信しています。
これは、処理したくない多くのオブジェクトを即座に削除するのに役立ちます (ただし、Sizeなどの使用される構造体について心配する必要があります)。興味深い問題はありませんか?:)
ここにあります:
MSDNから取得。
私は興味がある。これは、拡張メソッドを使用して .NET 3.x で実行できますか? インターフェイスを作成し、そのインターフェイスを拡張メソッドに実装します (これはおそらく少し太ったスイッチよりもクリーンです)。さらに、後で軽量のカスタム型に拡張する必要がある場合は、基本コードを変更する必要なく、同じインターフェイスを実装することもできます。
皆さんはどう思いますか?
悲しいニュースは、私は Framework 2 で作業していることです!! :D
編集3
これは、Jon Limjaps Pointerに続くとてもシンプルなものでした。とてもシンプルで泣きそうになりましたが、コードが魔法のように機能するので素晴らしいです!
それで、これが私がやったことです(あなたは笑うでしょう!):
ジェネリック クラスに追加されたコード
次に、型をチェックして例外をスローするためのちょっとしたユーティリティ メソッド、
あとは、クラス コンストラクターでEnforcePrimitiveType()を呼び出すだけです。仕事終わり!:-)
唯一の欠点は、設計時ではなく実行時 (明らかに) にのみ例外をスローすることです。しかし、それは大したことではなく、 FxCopのようなユーティリティ(職場では使用していません) で解決できます。
これについて Jon Limjap に感謝します!
c++ - 汎用反復子
一連のコンテナーにアクセスする一般的な方法を見つけようとしています。別のカスタム リストに加えて、標準のベクターとリストがあります。
カスタム リストは反復子を定義します。
適切な演算子がオーバーロードされています。
理想的には、これを行いたいと思います。
しかし明らかに、これらはすべて異なる型の反復子です。ただし、すべてのコンテナが同じタイプであると想定できます。
この問題を解決するエレガントな方法はありますか?
java - 一般的な引数を使用して EJB 3 セッション Bean メソッドをオーバーライドするにはどうすればよいですか?
次の EJB 3 インターフェイス/クラスがあるとします。
そして、Bean にアクセスする別のFooRepository
Bean :
ただし、FooRepository
Bean の delete メソッドが呼び出されたときにオーバーライド メソッドが実行されることはありません。代わりに、で定義されている削除メソッドの実装のみAbstractRepository
が実行されます。
私は何を間違っていますか、それともジェネリックと継承がまだうまく連携していないというのは、単に Java/EJB 3 の制限ですか?
c# - 強く型付けされた汎用リストを反復処理する最良の方法は何ですか??
C#.NET と VB.NET で厳密に型指定されたジェネリック List を反復処理する最良の方法は何ですか?
c# - C#でのIListの並べ替え
それで、今日、私は興味深い問題に遭遇しました。IListを返すWCFWebサービスがあります。並べ替えるまでは大したことではありません。
IListインターフェイスにはsortメソッドが組み込まれていないことがわかりました。
私はArrayList.Adapter(list).Sort(new MyComparer())
問題を解決するためにこの方法を使用することになりましたが、それは私には少し「ゲットー」のように見えました。
私は拡張メソッドを作成し、IListから継承し、独自のSort()メソッドを実装し、リストにキャストすることをいじくりまわしましたが、これらはどれも過度にエレガントに見えませんでした。
だから私の質問は、誰かがIListをソートするためのエレガントな解決策を持っているかということです
c# - C#のジェネリックとTの静的メンバーへのアクセス
私の質問は、c# と静的メンバーへのアクセス方法に関するものです...まあ、それを説明する方法がよくわかりません (どのような質問が悪いのでしょうか?) サンプル コードをいくつか示します。
回答ありがとうございます (ちなみに、問題は、エラーを発生させずにこの問題を解決するにはどうすればよいかということです)。これはおそらくあなたにとって非常に簡単な質問です!
編集:ご回答いただきありがとうございます!
私は try - キャッチ フレーズが最も洗練されていると思いますが、vb を使用した経験から、それが本当に残念な場合があることを知っています。私はそれを 1 回使用しましたが、プログラムの実行に約 30 分かかりましたが、後で try - catch を回避したため、計算に 2 分しかかかりませんでした。
これが、switch ステートメントを最良の回答として選んだ理由です。コードはより複雑になりますが、一方で、比較的高速で読みやすいと思います。(私はまだもっとエレガントな方法があるべきだと思っています...おそらく私が学ぶ次の言語で)
他の提案があれば、私はまだ待っています(そして喜んで参加します)
c# - リストまたはBusinessObjectCollection?
C#ジェネリック以前は、IEnumerableを実装したコレクションベースを作成することで、誰もがビジネスオブジェクトのコレクションをコーディングしていました。
IE:
そして、そこからビジネスオブジェクトコレクションを導き出します。
ジェネリックリストクラスを使用して、代わりにそれを使用する人はいますか?私は2つのテクニックの妥協点を使用していることに気づきました。
これを行うのは、リストを渡すだけでなく、強く型付けされた名前が好きだからです。
あなたのアプローチは何ですか?