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

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

java - main メソッドがパラメータ化された場合、その実数を指定するにはどうすればよいでしょうか?

では、ここでどのようにタイプを指定できますか。上記のコードでは型が指定されていないため、デフォルトのオブジェクト型が図に示されています。ローカル内部クラス「InheritableThreadLocal」をジェネリックにしたい。

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

java - Java コードがコンパイルできないのはなぜですか? [Java: ジェネリック メソッドと境界型パラメーター]

以下は私のJavaコードで、コンパイルできません。失敗の理由がわかりません:

コンパイルされず、エラーは次のとおりです。

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

c# - ジェネリック メソッドは、ジェネリック型とは異なる方法で IEnumerable を処理します

次のコード セグメントを確認してください。

Counter の 2 つのバージョンは、ジェネリック パラメーターの仕様のみが異なります。1 つはジェネリック型パラメーターとして定義され、もう 1 つはジェネリック引数として定義されます。どちらもメソッド引数を制限して ICountable インターフェイスを実装します。それらをそれぞれ特定および非特定と呼びます。

ここで、 ICountableインターフェイスとインスタンスのコレクションを実装するクラスを定義しています。

次に、コレクションで両方の Counter クラスを使用したいと思います。

特定のカウンターは、 countablesコレクションが署名int Count(IEnumerable)に分類される必要があることを認識しますが、非特定のバージョンはそうではありません。エラーが発生します:

型 ' ' は、ジェネリック型またはメソッド ' ' のSystem.Collections.Generic.List<CItem>型パラメーター ' ' として使用できません。' から への暗黙的な参照変換はありません 。TCounter.Count<T>(T)List<CItem>ICountable

特定されていないバージョンがコレクションに間違った署名を使用しているようです。

なぜ彼らは異なる振る舞いをするのですか?他のバージョンと同じように動作するために、特定されていないバージョンをどのように指定できますか?

注: この例が現実的でないことはわかっています。ただし、拡張メソッドを使用した非常に複雑なシナリオでこの問題に直面しました。簡単にするためにこれらのクラスを使用します

前もって感謝します

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

c# - カスタム形式の C# ジェネリック DateTime.ToString()

使用時:

Entity Framework は以下を生成します。

これは、デフォルトの日付形式「mon dd yyyy hh:miAM (または PM)」を使用します。

次のような方法で取得できる「yyyy-mm-dd hh:mi:ss (24h)」を使用したいと思います。

この形式を既存のジェネリック メソッドに実装するのに助けが必要です。

これは一例であり、常に「2016」であるとは限らず、常に年であるとは限らないことに注意してください。ユーザーは、月の最初の日、1 月、または 2001 年のいずれかの時刻または「01」を入力して、すべてのレコードを呼び出すことができます。これは非常に柔軟なフィルターです。

多くの人がこの状況を好まないことも理解していますが、私はここで解決策を本当に探しており、「これをしないでください」と言われません。

このソリューションは、LINQ to Entities にも対応する必要があるため、単純に .ToString("MMM d yyyy H:mm tt") を実行することはできません。

「LINQ to Entities はメソッド 'System.String ToString(System.String)' メソッドを認識しないため、このメソッドはストア式に変換できません。」

コードはデフォルトの日付形式で動作します。私の質問の理由は、Entity Framework でクエリを操作して、SQL レベルで日付形式を変更することです。

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

java - Java - ジェネリック メソッドの配列パラメーターの型推論

型推論は、ジェネリック メソッドを持つ配列では機能しないようです? 「The method contains(T[], T) is not applied for the arguments (int[], int)」というエラーが表示されます。これをどのように行う必要がありますか?

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

scala - 「cons[B >: A](v: B)」のように定義されたメソッドが、A のスーパータイプではない型の引数を受け入れるのはなぜですか?

私は現在、scala の分散を研究しており、反分散については十分に理解していると思います。たとえば、が のスーパータイプであるtrait List[-A]ことはわかっています。List[Int]List[AnyVal]

しかし、私には次の特徴があるとしましょう。

consパラメータの型が間違っているのはなぜですか?

なぜそれが必要なのdef cons[B >: A](v: B): List[B]ですか?

例えば:

呼び出す場合:

以来、問題に遭遇してTiger <: Animalいませんか?consBありTigerAありAnimal、ありませんのでB >: A、真ではありません。