Java Gold SE11対策:ラムダ式の書き方、どこまで知ってる?試験頻出ルールを解説!

アイキャッチ画像

Java Gold SE11の試験では、ラムダ式(lambda expression)が頻出トピックです。
しかし、(x, y) -> x + y のような省略された記法が突然出てくると「何をやっているのか分からない…」と戸惑う方も多いでしょう。

この記事では、ラムダ式の構文を基礎から整理し、Java Gold SE11に必要な知識に絞って、しっかり理解できるように解説します。

1. ラムダ式とは?

Java 8で導入された、関数型インタフェースの実装を簡潔に書くための構文です。
本来は匿名クラスで書いていたような処理を、短くシンプルに記述できます。

// 匿名クラス

Comparator<String> comp = new Comparator<String>() {

    public int compare(String a, String b) {

        return a.length() – b.length();

    }

};

// ラムダ式

Comparator<String> comp2 = (a, b) -> a.length() – b.length();

2. ラムダ式の構文の基本形

(引数) -> { 処理 }

具体例:

x -> x * x                      // 引数1つ(型省略)、戻り値1行

(x, y) -> x + y                // 引数2つ、1行処理

(String s) -> s.length()       // 引数の型を明記

() -> System.out.println(“Hi”) // 引数なし

x -> { return x * 2; }         // ブロック使用(returnあり)

3. 書き方ルール(試験で狙われるポイント)

✅ 引数が1つだけ → () を省略できる

s -> s.length()      // OK

(String s) -> s.length() // OK(型あり)

❌ 引数が2つ以上 → 必ず () が必要

(x, y) -> x + y      // OK

x, y -> x + y        // NG:括弧がない

✅ 処理が1文だけ → {}return は省略可

x -> x + 1           // OK

x -> { return x + 1; } // OK(明示的)

❌ 2文以上ある場合 → {} が必須

x -> {

    int result = x * 2;

    return result;

} // OK

x -> int result = x * 2; return result; // NG:複数文で{}がない

✅ 型推論は基本的に可能

Function<String, Integer> f = s -> s.length(); // OK(型推論)

⚠️ 試験で出やすい間違いパターン

パターン解説
x, y -> x + y括弧がない(引数2つ以上は必ず(x, y))
x -> { return x + 1 }セミコロンなし(return文には ; が必要)
(int x, y) -> x + y型を一部だけ指定するのはNG(両方指定必要)

4. ラムダ式の戻り値と型について

ラムダ式の「戻り値」は、処理の最後の値がそのまま返されます。
ブロック {} を使った場合は return を明記する必要があります。

x -> x + 1                 // 暗黙的な戻り値(return省略)

x -> { return x + 1; }     // 明示的な戻り値

型は コンテキストから推論される ため、通常は明記しなくてもOK。
ただし、推論できない場面では明示が必要になります。

コラム:文(statement)と式(expression)の違い

  • 式(expression):値を返す → x -> x + 1
  • 文(statement):命令的な処理 → x -> { int y = x + 1; return y; }

試験では「式の中に文を書いてる」ようなパターンでミスを誘います。
文がある場合は {} 必須!と覚えましょう。

まとめ:覚えておくべき構文ルール

  • 引数が1つ → () 省略OK
  • 引数が複数 or 型あり → () 必須
  • 処理が1文 → {}・return 省略OK
  • 処理が複数文 → {} と return 必須
  • 型推論される → 基本は型指定しないでOK

おわりに

ラムダ式の構文ルールを正しく覚えることは、Stream APIやOptionalとの連携を理解する上での第一歩です。
Java Gold SE11の試験では、「どのラムダ式が正しくコンパイルされるか」といった選択問題も多く、構文ミスで点を落とすケースが非常に多いです。