ファンクショナルインターフェース
Predicate 引数あり・戻り値boolean。
test, and(論理積), or(論理和), negate(否定), isEqual(equals)メソッドが定義されている。
x
3
1
Predicate<Double> pd = arg -> Math.abs(arg - 3.14) < 0.1;
2
System.out.println(pd.test(3.25)); // false
3
System.out.println(pd.test(3.16)); // true
関数を変数のように扱える。
1
11
11
1
public void doTest1A() {
2
Predicate<String> helloPredicate = (arg) -> arg == "Hello";
3
doTest1Re(helloPredicate); // true
4
}
5
public void doTest1B() {
6
Predicate<String> eveningPredicate = (arg) -> arg == "Evening";
7
doTest1Re(eveningPredicate); // false
8
}
9
public void doTest1Re(Predicate<String> pd1) {
10
System.out.println(pd1.test("Hello"));
11
}
論理積。
1
5
1
Predicate<Integer> multi2 = (arg) -> arg % 2 == 0; // 2の倍数
2
Predicate<Integer> multi3 = (arg) -> arg % 3 == 0; // 3の倍数
3
Predicate<Integer> multi6 = multi2.and(multi3); // 2と3の倍数 = 6の倍数
4
System.out.println(multi6.test(11)); // false
5
System.out.println(multi6.test(12)); // true