Java 8ビルトイン機能インターフェイスの新機能
以前のブログ投稿であるLambda Expressionで、Java 8が提供する機能インターフェイスについて言及しました。この記事では、Java 8の4つの最も基本的な機能インターフェイスを紹介します。
厳密に言えば、メソッドへの参照については、インターフェイスを定義する必要があります。私たちがどのように動作しても、実際には操作できるインターフェイスは4つしかありません。
Java 8は、機能的なインターフェイスパッケージjava.util.function。*を提供します。その下には、Java 8に組み込まれた多くの機能インターフェイスがあります。ただし、基本的に4つの基本タイプに分割されます。
機能インターフェイス(関数)
Tを入力、Rを出力として使用すると、他の関数と組み合わせたデフォルトメソッドも含まれます。
@functionalinterfacepublicインターフェイス関数<t、r> {r apply(t t);}サンプルコード
public static void main(string [] args){//ここでは、java8メソッドリファレンス、関数汎関数インターフェイスを使用します! function <string、boolean> function = "hello java" :: endswith; System.out.println(function.Apply( "Java"));}消費者インターフェイス
何も返さずにTを入力として取得し、単一のパラメーターで操作を示します。
@functionalinterfacepublic Interface Consumer <t> {void Accept(t t);}サンプルコード
class testDemo {//このメソッドには戻り値がありませんが、入力パラメーターパブリックボイドファン(string str){system.out.println(str); }} public class testfunctional {public static void main(string [] args){testdemo demo = new testdemo(); //消費者タイプインターフェイス、入力パラメーターのみ、出力パラメーターなしConsumer <String> Consumer = demo :: Fun; Consumer.accept( ""); }}
サプライヤー
入力パラメーターはなく、Tのみが出力を返します
@functionalinterfacepublicインターフェイスサプライヤー<t> {t get();}サンプルコード
public class testfunctional {public static void main(string [] args){//サプライヤータイプインターフェイス、出力パラメーターのみ、入力パラメーターなし! supplier <string> supplier = "java 8" :: touppercase; System.out.println(supplier.get()); }}アサーションインターフェイス(述語)
Tを入力として取得し、ブール値を出力として返すと、インターフェイスには、述語を他の複雑なロジック(および、または非)に結合するための多くのデフォルトメソッドが含まれています。
@functionalinterfacepublicインターフェイスpredicate <t> {boolean test(t t);}サンプルコード
public class testfunctional {public static void main(string [] args){// Assert Type Interface。入力パラメーターがあり、出力パラメーターはブール値<string> predicate = "android" :: equalsignorecaseです。 system.out.println(predicate.test( "android")); }}したがって、Java 8では、上記の4つの機能インターフェイスがあるため、ユーザーが新しい機能インターフェイスを定義することは一般にまれです。
読んでくれてありがとう、私はそれがあなたを助けることができることを願っています。このサイトへのご支援ありがとうございます!