問題タブ [pecs]

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 に答える
163 参照

java - PECS は、インターフェイスを持つ戻り値の型では機能しません

次の例を考えてみましょう。

そして、私は2つの非常によく似た方法を持っています:

そして、メソッドは次を呼び出します。

ただし、以下の 2 を考慮してください。

日食エラー:

範囲の不一致: 型 Testing のジェネリック メソッド returnC() は、引数 () には適用できません。推論されたタイプ ClsB&ClsA は、制限付きパラメーターの有効な代替ではありません<T extends ClsA>

しかし、次のコードは正常にコンパイルされます。

インターフェイスの場合、バインドされたジェネリックが戻り値の型で考慮されないのはなぜですか?

0 投票する
0 に答える
60 参照

java - PECS パラメータ化クラス

独自の java.util.stream 実現を作成した小さなコードがあります。

PECS ルールを使用してパラメータ化する必要があります。しかし、私は PECS ルールをよく理解していなかったか、私のクラスのデザインが悪かったかのどちらかです - 私はそれを正しく実装する方法を知りません。

たとえば、filter() メソッドの実現で (? extends T) を実装しようとすると、foreach サイクルを使用できません。

多分あなたはいくつかのアイデアを持っていますか?前もって感謝します。

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

java - 図書館を設計するとき、いつ PECS を使うべきですか?

私は関数型インターフェースを多用するライブラリに取り組んでおり、現在PECSを適用するかどうか悩んでいます:

対。

非常に雑然としているように見え、エラーメッセージでさえ次のようになります。

のようなものに

これはとても読みにくいです。次の質問を読みましたが、ライブラリ コードを汚染し、コンパイラ エラー メッセージを悪化させるため、それを適用するかどうかまだ悩んでいます。Predicate<A>個人的には、バリアントには PCES を選択します。

PECS を適用するかどうかのガイドラインはありますか? 私は長所と短所を知っていPredicateますが、ラムダやメソッド参照が PECS が提供するものに影響されないので、フィールドなどに実際に格納する頻度はどれくらいあるのだろうかと思います。ウェブ上でこれ以上のアドバイスは見つかりませんでした。これは、これによって影響を受けるクラスの 1 つです。