Java17 の Pattern Matching for switch

openjdk.org

switch 文式で、String , int , enum 以外の判定で魅力的なのですが、

static String formatterPatternSwitch(Object o) {
    return switch (o) {
        case Integer i -> String.format("int %d", i);
        case Long l    -> String.format("long %d", l);
        case Double d  -> String.format("double %f", d);
        case String s  -> String.format("String %s", s);
        default        -> o.toString();
    };
}

Java17 の これは、まだプレビュー機能なんだそうだ。どういうことかというと、
Oracle の説明でプレビュー機能は、
プレビュー機能とは、設計、仕様および実装は完了しているが、
 永続的でない新機能のことであり、将来のJDKリリースでは別の形式で存在するか、
 完全になくなる可能性があることを意味します。」

とあるので、Eclipseコンパイルが通常では通らない。

Java19 でもまだ、プレビューの状態なので、
JDK19 を使うようにして、Eclipse のプロジェクト毎の設定でようやく
プレビュー機能を使用」にチェックを入れることができて、
やっとコンパイルも通り動くのだが、
不本意にも JRE19 で実行することになる。
Eclipseの設定は、コンパイルの設定で以下のようにする。
(2022-12 版の Pleades(Eclipse)では、以下のようにしないとダメだった)

このように
「Java19 のプレビュー機能を使用可能にする(P)」にチェックをつけて、
JRE の指定を JRE19 にしないとならない。