Javaの関数型インターフェースのPredicateのサンプルです。
目次
説明 | Predicateインターフェース |
サンプル | クラスにPredicateインターフェースを実装する |
匿名クラスでPredicateインターフェースを使用する |
Predicateインターフェース
インターフェース | public interface Predicate<T> |
メソッド | boolean test(T t) |
- Predicateは、入力と出力があります。
- testメソッドは、引数があり、booleanの戻り値があります。
- PredicateのTはメソッドの引数の型です。
- predicateは述語という意味です。
- 以下は、OracleのJava8のPredicateインターフェースのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/util/function/Predicate.html
関数型インターフェースのPredicateのサンプルです。
package test1;
import java.util.function.Predicate;
public class Test1 {
public static void main(String[] args) {
Predicate <String> check1 = a -> a.isEmpty(); //文字列は空文字か
System.out.println(check1.test("3")); //false
System.out.println(check1.test("")); //true
}
}
3行目は、java.util.functionパッケージのPredicateインターフェースをimportしています。
8行目は、Predicateインターフェースを使用したラムダ式です。
Predicate <String>の
Stringは、Predicate<T>のTでメソッドの引数の型です。
isEmptyメソッドは、文字列は空文字か判定します。
10,12行目は、testメソッドでStringの引数があり、戻り値はbooleanです。
クラスにPredicateインターフェースを実装する
package test1;
import java.util.function.Predicate;
public class Test1 {
public static void main(String[] args) {
Check1 check1 = new Check1();
boolean b1 = check1.test(123);
System.out.println(b1); // true
}
}
class Check1 implements Predicate<Integer> {
@Override
public boolean test(Integer c1) {
boolean a1 = false;
if (c1 == 123) {
a1 = true;
}
return a1;
}
}
2行目は、java.util.function.Predicateインターフェースをimportしています。
13行目は、Predicateインターフェースを実装しています。
Integerは引数の型です。
9行目は、testメソッドです。引数と戻り値があります。戻り値はbooleanです。
匿名クラスでPredicateインターフェースを使用する
package test1;
import java.util.function.Predicate;
public class Test1 {
public static void main(String[] args) {
int c1 = 1;
boolean b1 = new Predicate<Integer>() {
@Override
public boolean test(Integer c1 ) {
boolean a1 = false;
if (c1 == 1 ){
a1 = true;
}
return a1;
}
}.test(c1);
System.out.println(b1); //true
}
}
6行目は、java.util.PredicateパッケージのPredicateインターフェースをimportしています。
13行目は、匿名クラスです。クラス名はありません。
19行目は、applyメソッドです。引数と戻り値があります。
19行目は、数値が昇順にソートされて表示されます。
関連の記事
Java 関数型インターフェースのサンプル(Consumer)
Java 関数型インターフェースのサンプル(Supplier)
Java 関数型インターフェースのサンプル(Function)