88
103

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Java】ラムダ式の省略方法まとめ

Last updated at Posted at 2018-03-20

ラムダ式の省略方法をまとめます。
Java Silverなどの試験で問われるので、受験者の助けになればと思います。
最後に覚え方をまとめています。

そもそもラムダ式がわからない場合はこちらをどうぞ。
Java8のラムダ式を理解する

まず、ラムダ式の基本形。

基本形
Predicate<String> javaChecker = (String s) -> { return s.equals("Java"); };

ここから何をどう省略できるのか見て行きましょう。

引数の型

まず、引数の型が省略可能です。

Predicate<String> javaChecker = (s) -> { return s.equals("Java"); };

ただし、複数の引数がある場合、片方だけ省略するというのはできません。

// コンパイルエラー
BiFunction<Integer, Integer, Integer> adder = (a, Integer b) -> { return a + b; };

引数の()

引数の()も省略可能です。

Predicate<String> javaChecker = s -> { return s.equals("Java"); };

ただし、条件が2つあります。
まず、型を指定した場合は省略できません。

// コンパイルエラー
Predicate<String> javaChecker = String s -> { return s.equals("Java"); };

次に、引数が複数ある場合も省略できません。

// コンパイルエラー
BiFunction<Integer, Integer, Integer> adder = a, b -> { return a + b; };

引数が1単語の時のみ()が省略可と覚えると良いと思います。

メソッドの{}

メソッドの{}も省略可能です。

Consumer<String> buyer = goods -> System.out.println(goods + "を購入しました");

こちらも条件があります。
まず、処理が2文以上あると省略できません。

// コンパイルエラー
Consumer<String> buyer = goods -> String message = "私が、" + goods;
                                  System.out.println(message + "を購入しました");

次にreturnを記述すると省略できません。

// コンパイルエラー
Predicate<String> javaChecker = s -> return s.equals("Java");

ただし、returnも省略すれば正常に実行することができます。

Predicate<String> javaChecker = s -> s.equals("Java");

処理が1ステートメントの時のみ{}が省略可、戻り値がある場合はreturnの省略もセットで、と覚えましょう。

return

上記のようにreturnは省略可能ですが、メソッドの{}を残したままでは省略できません。

// コンパイルエラー
Predicate<String> javaChecker = s ->{ s.equals("Java"); };

returnを省略したい時も{}の省略とセットということになります。

まとめ

まとめると以下のようになります。

省略部分 条件
引数の型 全引数の型を省略すること
引数の() 1単語の時のみ
メソッドの{} 1ステートメントの時のみ
戻り値がある場合、returnの省略とセット
return メソッドの{}の省略とセット
88
103
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
88
103

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?