Java で if 式っぽいことをやる
Java で if 式っぽいことができないかなーと思い考えてみました。
Java で if 式っぽい事をやってみた。
— トモフミ (@tomofummy) 2016年4月17日
これ、キャストなしで、できないかなー。 #教えて pic.twitter.com/EqUh8wes8F
キャストをなくすには、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 なローカル変数しかみれないけど。