April Fools’ Day だから古典的な Java Puzzle をどうぞ

エイプリルフール用のネタを用意できなかったので古典的な Java パズルを出題します。

これは簡単なパズルなので誰でも解ると思います。

今日はエイプリルフールなので簡単に解っても難しかったと言っといてください。(ヲヒ

では問題です。

このプログラムを実行すると何が表示されますか?

package jp.yucchi.who;

import java.util.function.Consumer;

public class Who {

    private final String name;

    public Who(String name) {
        this.name = name;
    }

    private String name() {
        return name;
    }

    private void reName() {
        new Who("堀北真希") {
            Consumer c = name -> {
                printName(name);
            };

            private void printName(String name) {
                System.out.println("本名 " + name + " , 芸名 " + name());
            }
        }.c.accept(name);
    }

    public static void main(String[] args) {
        new Who("原麻里奈").reName();
    }
}

1.本名 原麻里奈 , 芸名 堀北真希

2.本名 原麻里奈 , 芸名 原麻里奈

3.コンパイルエラー

4.実行時エラー

 

解答は後日気が向けば書きます。(書くほどのもんじゃない(^_^;)

できれば面倒なので誰か種明かしをコメントとして書いてくれるとありがたいです。

Hatena タグ:

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です