組み込み機能インターフェース
表示される可能性のある関数インターフェイスには最大で4つのタイプのメソッドがあります。パラメーター付きの戻り値、パラメーター付きの戻り値なし、パラメーター付きの戻り値なし、trueとfalseの判断です。
開発者の定義を簡素化して操作を統一するために、Javaは新しい開発パッケージjava.util.functionを提供し、このパッケージに次の4つのコア機能インターフェースを提供します。
1.機能インターフェース(Function)
インターフェイスは次のように定義されています。
@FunctionalInterface
public interface Function<T,R>{
public R apply(T t);
}
主な機能:このインターフェースは、パラメーターを受け取り、処理結果を返す必要があります。
例:機能的な機能インターフェースを使用します。このプログラムは、関数インターフェイス参照、文字列クラス「public boolean startsWith(String str)」メソッドを使用します
package Project.Study.BuiltInFunctionalInterface;
import java.util.function.*;
public class Test1 {
public static void main(String args[]){
Function<String,Boolean>fun="Hello World"::startsWith;
//public boolean startsWith(String prefix, int toffset)方法
//startsWith() 方法用于检测字符串是否以指定的前缀开始。
System.out.println(fun.apply("H"));
System.out.println(fun.apply("e"));
System.out.println(fun.apply("ll"));
}
}
//结果:
//true
//false
//false
2.コンシューマインターフェイス(コンシューマ)
インターフェイスは次のように定義されています。
@FunctionalInterface
public interface Consumer<T>{
public void accept(T t);
}
主な役割:このインターフェースは、データの受信のみを担当し(データを参照するときに戻る必要はありません)、処理結果を返しません。
例:コンシューマーインターフェイスを使用します。
package Project.Study.BuiltInFunctionalInterface;
import java.util.function.Consumer;
public class Test2 {
public static void main(String args[]){
Consumer<String>cons=System.out::println;
cons.accept("Hello World");
}
}
//结果
//Hello World
このプログラムは、コンシューマインターフェイスを使用してSystem.out.println()メソッドへの参照を受け取ります。このメソッド定義は文字列データを受け取る必要がありますが、結果を返しません。
3.供給インターフェース(サプライヤー)
インターフェイスは次のように定義されています。
@FunctionalInterface
public interface Supplier<T>{
public T get();
}
主な機能:このインターフェースはパラメーターを受け取りませんが、結果を返すことができます。
例:供給インターフェース。このプログラムは、Stringクラス(public String toUpperCase())のtoUpperCase()メソッドを使用します。
package Project.Study.BuiltInFunctionalInterface;
import java.util.function.Supplier;
public class Test3 {
public static void main(String args[]){
Supplier<String>sup="Hello World"::toUpperCase;
//toUpperCase的意思是将所有的英文字符转换为大写字母,只对英文字母有效,对除了A~Z和a~z的其余字符无任何效果
System.out.println(sup.get());,
}
}
//结果
//HELLO WORLD
4.アサーションインターフェース(述語)
インターフェイスは次のように定義されています。
@FunctionalInterface
public interface Predicate<T,R>{
public boolean test(T t);
}
主な役割:使用を判断する
例:アサーティブインターフェース。このプログラムは、Stringクラス(public boolean equalsIgnoreCase(String str))のequalsIgnoreCase()メソッドを参照します。
package Project.Study.BuiltInFunctionalInterface;
import java.util.function.Predicate;
public class Test4 {
public static void main(String args[]){
Predicate<String>pre="Hello World"::equalsIgnoreCase;
//执行忽略大小写的比较,当比较两个字符串时,它会认为A-Z和a-z是一样的
System.out.println(pre.test("HELLO WORLD"));
}
}
//结果:
//true