今回はJavaのラムダ式についての問題に挑戦しましょう。
問題
次のプログラムを実行した場合の出力はどれでしょうか?適切な選択肢を選んでください。
import java.util.function.Consumer;
public class Main {
public static void main(String[] args) {
Consumer<String> printer = s -> System.out.println(s.toUpperCase());
printer.accept("hello lambda");
}
}
選択肢
- A. hello lambda
- B. Hello Lambda
- C. HELLO LAMBDA
- D. コンパイルエラー
- E. 実行時エラー
答えと解説
回答を見る
答え
C. HELLO LAMBDA
解説
基本説明:
この問題はJavaのラムダ式を使ったプログラムで、文字列を入力して、大文字に変換して表示する機能を持っています。
ラムダ式は関数型インターフェースを実装するための簡潔な方法です。ここでは、Consumer<String>
インターフェースを実装しています。
誤答理由とつまずきポイント:
Aの選択肢やBの選択肢がエラーとなる原因は、s.toUpperCase()
によって文字列"hello lambda"
がすべて大文字に変換されて返されることです。
このプログラムでは、単にSystem.out.println(s)
ではなく、s.toUpperCase()
を使用している点が重要で、ここで小文字が大文字に変換されています。
発展知識:
ラムダ式はJava 8で導入され、コードの簡略化に役立ちます。特に、匿名クラスを使わずに関数型インターフェースを実装できる点が大きな特徴です。
これは、実際の現場でも非常によく使われており、Javaプログラムの記述を簡潔にするための重要なツールとなります。
実際に仕事でも使われることが多いので、ぜひとも理解を深めてください。