読者です 読者をやめる 読者になる 読者になる

Java で if 式っぽいことをやる

Java

Java で if 式っぽいことができないかなーと思い考えてみました。

キャストをなくすには、1個 static メソッドでも挟めばいいかと思い以下のメソッドを用意

public static <T> T $(Supplier<T> s) {
    return s.get();
}

で、こうする。

final String label = $(() -> {
    if (code == 0) {
        return "TODO";
    } else if (code == 1) {
        return "DOING";
    } else if (code == 2) {
        return "DONE";
    }
    throw new RuntimeException("unknown");
});

どうでしょう。ラムダの中は、final なローカル変数しかみれないけど。