ソフトウェアエンジニアの日常の雑記

日々思ったことをまとめます

Java8の@FunctionalInterfaceを使う

本家はこちら

関数インターフェースのPredicateとかFunctionがあるのであんまり使わないけど、引数とか3つ以上のものはないのでつくる必要がある。

基本的に抽象メソッドを1つしかもっていなければOK。defaultメソッドはいくつもっていてもOKです。(ラムダ式のときに何を使うかわからなくなっちゃうからかなと)

@FunctionalInterface
interface SampleInterface {
      boolean filter(String a);
}

こんな感じでカンタンに作れる

使うときはこんな感じでカンタンに使える。

SampleInterfacle sampleFilter = s -> "a".equals(s);
sampleFilter.filter("a");

なんかもうカンタン過ぎますね

ちなみに引数3つは、こんな感じ

@FunctionalInterface
interface SampleInterface {
      boolean filter(String a, String b, String c);
}

SampleInterfacle sampleFilter = (s, t , u)  -> "a".equals(s);
sampleFilter.filter("a","b","c");

こんな感じで使える。なんかもうカンタン過ぎますね。みんなもっと使いましょう!