Predicate

ファンクショナルインターフェース
Predicate 引数あり・戻り値boolean。
test, and(論理積), or(論理和), negate(否定), isEqual(equals)メソッドが定義されている。

Predicate<Double> pd = arg -> Math.abs(arg - 3.14) < 0.1;
System.out.println(pd.test(3.25)); // false
System.out.println(pd.test(3.16)); // true

関数を変数のように扱える。

public void doTest1A() {
    Predicate<String> helloPredicate = (arg) -> arg == "Hello";
    doTest1Re(helloPredicate);  // true
}
public void doTest1B() {
    Predicate<String> eveningPredicate = (arg) -> arg == "Evening";
    doTest1Re(eveningPredicate);  // false
}
public void doTest1Re(Predicate<String> pd1) {
    System.out.println(pd1.test("Hello"));
}

論理積。

Predicate<Integer> multi2 = (arg) -> arg % 2 == 0;  // 2の倍数
Predicate<Integer> multi3 = (arg) -> arg % 3 == 0;  // 3の倍数
Predicate<Integer> multi6 = multi2.and(multi3);     // 2と3の倍数 = 6の倍数
System.out.println(multi6.test(11));                // false
System.out.println(multi6.test(12));                // true

 

投稿日: