問題タブ [generic-method]
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.
reflection - MakeGenericMethod を動的型に渡す
ジェネリック メソッドを呼び出そうとしていますが、Type を動的に渡す必要があります。しかし、コンパイル エラー 'CS0246: 型または名前空間名 `t' が見つかりませんでした。using ディレクティブまたはアセンブリ参照がありません。私が見落としていることを教えてください、ありがとう。
...概して...
一般的な方法...
java - 生の型とジェネリック メソッドの組み合わせ
ここで質問です。この最初のコード リストは問題なくコンパイルされます (JDK 1.6 | JDK 1.7)。
ただし、List
参照を生の型として宣言すると、次のようになります。
String[]
が必要ですが、Object[]
見つかったというコンパイラ エラーが発生します。
これは、引数としてObject[]
a を受け取っているにもかかわらず、コンパイラがジェネリック メソッドを返すものとして解釈していることを意味します。String[]
toArray(myArray)
メソッドの署名を再確認しました。
したがって、型パラメーター<T>
が List の型パラメーター (つまり ) とはまったく関係のないパラメーター化されたメソッドです<E>
。
ここで生の型を使用すると、独立した型パラメーターを使用してパラメーター化されたメソッドの評価にどのように影響するかわかりません。
- このコードがコンパイルされない理由を知っている人はいますか?
- この動作が文書化されている参照を知っている人はいますか?
c# - ジェネリックなメソッドに Type 変数を送信するにはどうすればよいですか?
私はこのような方法を持っています、
Tが何であるかわかりません。持っていません。しかし、私はTYPEとしてTのタイプを持っています。
例えば:
私は人を持っていません。Person は type オブジェクトを保持しています。
テストメソッドはどのように使用できますか?
java - 機能する Java API を定義するときのジェネリック ワイルドカードの正しい使用法は何ですか?
一般的な抽象化 (たとえばIterable<T>
) の演算子として機能する関数型の静的ヘルパー メソッドを作成していますが、いつワイルドカードを使用する必要があるかについて少し混乱しています。次の場合の正しい、最もタイプ セーフで最も単純なメソッド シグネチャは何ですか? またその理由は何ですか?
- プロパティの確認:
public static int size(Iterable<?> source)
対。
public static <T> int size(Iterable<T> source)
- 変換:
public static <T> Iterable<T> take(Iterable<T> source, int count)
対。
public static <T> Iterable<T> take(Iterable<? extends T> source, int count)
- 組み合わせる:
public static boolean elementsEqual(Iterable<?> first, Iterable<?> second)
対。
public static <T> boolean elementsEqual(Iterable<T> first, Iterable<T> second)
対。
public static <T> boolean elementsEqual(Iterable<? extends T> first, Iterable<? extends T> second)
java - パラメータのプライベート フィールドが Java 6 のジェネリック メソッドから見えるのに、Java 7 では見えないのはなぜですか?
重複の可能性:
Java 7 にアップグレードした後、ジェネリック クラスの型パラメーター化されたフィールドが非表示になる
JDK 1.6 に対してビルドする場合、これは問題なくコンパイルされますが、1.7 に対しては、genericMethod() にコンパイラ エラーがあります: The field Test._canYouSeeMe is not visible
_canYouSeeMe を private ではなく protected にすることでエラーを解決できるのですが、1.6 から 1.7 で何が変わったのか気になります。
r - .rd ファイルで S4 メソッドにリンクしていますか?
私は S4 クラスを含むパッケージを作成しており、クラスのメソッドとas.POSIXct
クラスのメソッドを作成しas.POSIXlt
ました。私はドキュメントを作成しましたが、すべて問題ないように見えますが、as.POSIXct
のドキュメントでメソッドを参照したいas.POSIXlt
場合と、その逆の場合を除きます。\S4method{coerce}{abc, POSIXct}(from, to)
、(「abc」はS4クラスです)を試しましたが\usage
、それはセクションにのみ配置することになっていますが、それは私が望む場所ではありません。これを行う方法はありますか?それが許されないというのは奇妙に思えます。
これらの .rd ファイルを組み合わせてこの問題を回避できることはわかっていますが、R のクラスとパッケージについてできるだけ多くのことを学ぼうとしているので、とにかくこれは興味深いことです。
.Rd ファイルの 1 つのスケルトンを次に示します。
下から 4 番目の行が問題を引き起こしている行です。
c# - リフレクションによってジェネリック パラメーターの型を取得する方法
リフレクションによってジェネリック パラメーターのジェネリック型を取得する必要があります。しかし、型 { Name="T" ; ではなく、実際の型です。FullName=null }
しかし、リフレクションを使用しているため、typeof(T) は使用できません。
(リフレクションを使用して) ジェネリック引数の型を取得する方法はありますか。
他のテーマでは、typeof(T) ex によって呼び出されるメソッドを呼び出す方法を知りたい:
T ジェネリック引数から RuntimTypeHandle を取得するにはどうすればよいですか
java - Java汎用メソッド
元の質問:
新しいArrayListを返す次のメソッドを記述します。新しいリストには、英語の文字(a、e、i、o、u)の配列を含む元のリストの母音要素のみが含まれます。
これは私がこれまでに持っているものです。母音を別の配列に入れて印刷する方法に苦労している文字の配列リストを印刷するための適切なジェネリックメソッドを作成したと思います。助言がありますか?実行するには、「母音」の汎用ArrayListを作成する必要があると思いますか?私は正しい方向に進んでいますか?
助けてくれてありがとう!
これまでの私のコードは次のとおりです。
scala - ジェネリックメソッドをscalaのジェネリックメソッドにラップするにはどうすればよいですか?
Option
例外をスローするのではなく、を返すように、spray-jsonパーサーをラップしようとしています。
最初のステップとして、メソッドを自分のメソッドでラップしようとしていますが、汎用化するのに問題があります。
パーサーは暗黙のフォーマットオブジェクト(私が使用している具象型に対して定義されている)を使用しますが、メソッドが汎用の場合、コンパイラーは次のように文句を言います。
関連するコードは次のとおりです。
これを機能させるには何をする必要がありますか?
c# - foreach で使用するジェネリック メソッドを介して渡されたオブジェクトの型を取得するにはどうすればよいですか?
次のコードでは、項目のリストを持つ「CachedModel モデル」を渡そうとしていますList<CachedModel.CachedModelItem>
。ただし、foreach は「アイテム」が好きではありません。また、Item.GetType() や Type myType = Item.GetType(); とも異なります。foreach(myType アイテム ...
エラー: 「型または名前空間名 'Item' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)」
何か案は?
電話:
方法: