Java Gold合格へ向けて
黒本の第2章は『関数型インタフェースとラムダ式』、これをさらに細分化すると下記の3つに分かれる(黒本より抜粋)。
java.util.functionパッケージの関数型インタフェースの問題は、下記の3つの観点で、用意されているインタフェースを覚える必要がある。
- インタフェース…黒本に記載されている主なインタフェースは11個
- 戻り値型…インタフェースごとに決まっている
- メソッド…インタフェースごとに決まっている
黒本に記載されているインタフェースは11個なので、それ全部を覚えられれば対策は完了かと思われる。とはいえConsumerとBiConsumer、PredicateとBiPredicate、BiFunctionとBiFunctionのように引数が増えるだけのものや、第3章の並列処理で使うRunnableがあるため、最低限覚えるべきは赤字で示した5個だと考える。そのためこの一週間ではこの6個を集中的に覚えることにする。
インタフェース | 英語の意味 | 戻り値型 | メソッド |
---|---|---|---|
Supplier |
提供者 | T | get() |
Consumer |
消費者 | void | accept(T) |
BiConsumer<T, U> | 消費者 | void | accept(T, U) |
Predicate |
断定する | boolean | test(T) |
BiPredicate<T, U> | 断定する | boolean | test(T, U) |
Function<T, R> | 関数 | R | apply(T) |
BiFunction<T, U, R> | 関数 | R | apply(T, U) |
UnaryOperator |
単項演算子 | T | apply(T) |
BinaryOperator |
二項演算子 | T | apply(T, T) |
Runnable | 実行可能 | void | run() |
Callable |
呼び出し可能 | V | call() |
とはいえ、上記の単語を覚えるだけでは意味がない。その使い方、ジェネリクスまで覚える必要がある。その辺りは関数型インタフェースの定義と記述、ラムダ式の利用で理解を進めていく。それらについてはまた記事を分けて説明したい。