はじめてではないJava8
はじめに
先ほどはじめてJava8をつかいました。
JapaneseDateだけではやはり満足できないのでラムダ式をためしてみます。
ラムダ式
まずJava7までの関数型インターフェースの実装です。
@FunctionalInterface interface HogeInterface { boolean isHoge(String value); } public class JavaApplication { public static void main(String[] args) { HogeInterface hoge = new HogeInterface(){ @Override public boolean isHoge(String value) { return value.equals("hoge"); } }; } }
NetBeansIDE 8.0だと上記の実装をすると「この匿名内部クラスをラムダ式に変換できます。」
といわれます。「ラムダ式を使う」をクリックすると下記のようになります。
右辺の{}とreturnは省略済みです。
public class JavaApplication { public static void main(String[] args) { HogeInterface hoge = (String value) -> value.equals("hoge"); } }
左辺の型はインターフェースで宣言されているので自明で省略できます。
public class JavaApplication { public static void main(String[] args) { HogeInterface hoge = (value) -> value.equals("hoge"); } }
引数が1つなら左辺のカッコも省略できます。
public class JavaApplication { public static void main(String[] args) { HogeInterface hoge = value -> value.equals("hoge"); } }
まとめ
ラムダ式は「関数型インターフェース」の記述が簡単にするものみたいです。