JavaSilverでメモしたところ備忘録として残しておこうと思います。
- 関数型インターフェース学びたてはってなんだよと思いながら勉強してました。ラムダ式を少し学んだあとに読み返すと理解が深まりました!
関数型インターフェース
- 定義されている抽象メソッドが一つだけ、staticメソッドやdefaultメソッドが定義されていても問題なし
Supplierインターフェース
-
getメソッド
が定義されている、引数なしで戻り値にジェネリクスで指定したデータ型の値を返すメソッド
Supplier<String> Sup = () -> "Hello!!";
//getメソッドのオーバーライド
System.out.println(sup.get());
//getメソッドの呼び出し
//Hello!!と出力される
Consummerインターフェース(消費者)
-
acceptメソッド
が定義されている、引数にジェネリクスで指定したデータ型の値をとり戻り値なし
Consummer<String> con = (s) -> System.out.println("Hello" + s + "!");
//acceptメソッドのオーバーライド
con.accept(" Tanaka");
//acceptの呼び出し
//Hello Tanaka!と出力される
Predicateインターフェース(判断者)
- 引数の値を受け取りTrueもしくはFalseの値を返す
Predicate<String> pre = testval -> testval.isEmpty();//文字列は空文字か?
System.out.println(pre.test(2));
//空文字ではないのでfalseが出力される
Functionインターフェース
- 引数で渡した値を演算して返り値として返す
Function<Integer, String> make1 = a -> a + "です";
String b = make1.apply(2);
System.out.println(b);//"2です"と表示される