ホームページ >Java >&#&チュートリアル >項目 標準の機能インターフェイスの使用を優先する

項目 標準の機能インターフェイスの使用を優先する

WBOY
WBOYオリジナル
2024-07-25 10:47:31661ブラウズ

Item  Prefira o uso das interfaces funcionais padrão

ラムダによる API の進化: Java でのラムダの導入により、静的メソッドを優先してテンプレート メソッド パターンを避けるなど、API を作成する方法が変わりました。関数オブジェクトを受け入れるファクトリまたはコンストラクター。

LinkedHashMap の例: キャッシュ制御のために RemoveEldestEntry メソッドをオーバーライドする代わりに、BiPredicate 関数インターフェイスを使用して関数オブジェクトで静的ファクトリーまたはコンストラクターを使用する方がより現代的です。

標準関数インターフェースの使用: java.util.function パッケージは、標準関数インターフェースの幅広いコレクションを提供します。API を理解しやすくし、相互運用性を向上させるために、カスタム インターフェースよりも優先されるべきです。

主な機能インターフェイス:

  • UnaryOperator: T 型の関数を T に適用します。
  • BinaryOperator: T 型の 2 引数関数を T に適用します。
  • 述語: 引数をテストし、ブール値を返します。
  • 関数: T 型の関数を R に適用します。
  • サプライヤー: 引数なしで型 T の値を提供します。
  • Consumer: リターンなしで型 T の引数を消費します。

プリミティブ型の関数インターフェイス: IntPredicate や LongBinaryOperator など、プリミティブ型 (int、long、double) の 6 つの基本インターフェイスのバリアントがあります。

カスタム関数インターフェースを作成する場合:
ニーズを満たす標準インターフェイスがない場合。
わかりやすい名前または強力な契約が必要な場合。
インターフェイスがカスタムのデフォルト メソッドから恩恵を受けることができる場合。
@FunctionalInterface 注釈の使用: インターフェイスがラムダをサポートするように設計されていることを示し、抽象メソッドが 1 つだけ含まれるようにします。

曖昧なオーバーロードを避ける: 曖昧さを避けるために、同じ引数位置で異なる関数インターフェイスを受け入れる多くのオーバーロードを含むメソッドを作成しないでください。

**結論: **最新の API の設計では、ラムダと関数型インターフェイスを考慮する必要があります。一般に、カスタム インターフェイスが必要な特定の場合を除き、デフォルトの java.util.function インターフェイスを使用することをお勧めします。

以上が項目 標準の機能インターフェイスの使用を優先するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。