MENU

【Java Silver】ラムダ式の理解と適用

ラムダ式はJavaの関数型プログラミングの重要な要素です。今回の問題を解いて理解を深めましょう。

問題

次のプログラムを実行した場合の出力はどれでしょうか?正しい選択肢を選んでください。

import java.util.function.Function;

public class LambdaExample {
    public static void main(String[] args) {
        Function<Integer, String> converter = (Integer number) -> {
            if (number > 10) {
                return "Large Number";
            } else {
                return "Small Number";
            }
        };

        System.out.println(converter.apply(15));
    }
}

選択肢

  • A. Large Number
  • B. Small Number
  • C. コンパイルエラー
  • D. 実行時エラー

答えと解説

回答を見る

答え

A. Large Number

解説

解説のポイント:

  • ラムダ式の基本構文
  • Functional Interfaceの理解

Javaでラムダ式を使うためには、Functional Interface (関数型インタフェース) という、一つだけ抽象メソッドを持つインタフェースを使用します。

このプログラムでは、Function<Integer, String>をインタフェースとして使用しています。Functionは、1つの入力(この場合はInteger)を取り、1つの出力(この場合はString)を返すメソッドを実装する関数型インタフェースです。

次にラムダ式が登場します。一般的な構文としては、引数の一覧の後に<→>でコードブロックを囲んで実装を記述します。

引数の型 (Integer) は省略可能です、なぜなら Function インターフェースから型推論が働くからです。

式内のconverter.apply(15)はラムダ式を呼び出していて、変数numberに15を渡しています。

条件評価では「numberが10より大きいなら”Large Number”を返し、それ以外なら “Small Number”を返す」という指示があります。15は10より大きいので “Large Number” を返すことになり、このため選択肢Aが正解です。

目次