Javaで関数型言語のcase式みたいに書く

JavaやCなど構造化プログラミングやオブジェクト指向などは、if文や case文(switch文)は値を持ちません。関数型言語ではそれ自体が値を持ち、なれるとこれが結構便利です。
Javaでもif式は3項演算子で同じようなことができますが、case式っぽいことも書けるのに気がつきました。
3項演算子を並べただけですが、case式っぽく見えます。

class CaseExpPpoku {
    public static void main(String[] args) {
        char nengou = args[0].charAt(0);
        System.out.println(
                nengou == 'H' ? "平成":
                nengou == 'S' ? "昭和":
                nengou == 'T' ? "大正":
                nengou == 'M' ? "明治":
                                "??");
    }
}
C:>java CaseExpPpoku S
昭和
C:>java CaseExpPpoku A
??

どうでしょう?
十年間Javaをやってきたけれど、こんなコードは見たことがないです。「会心の一撃」という感じ。
switch文はそれぞれのcaseに値を指定するけれど、これはそれぞれに条件式が書けるので、むしろLISPのcond(condition)に近い感じ。その分、自由度が高いです。
結局は慣れの問題だろうけれど、3項演算子が好きな人なら、コレも好きになるんじゃないかな?
無駄なローカル変数は使わなくてすむし、思考の流れが途絶えることなく、一連のコードにつながっていくのでイイ感じです。