Java 16 以降でコンパイル時に警告を発生させ、実行時に例外を引き起こす値ベースのクラスのインスタンスで同期を試みていることを報告します。

たとえば、java.lang.Doublejdk.internal.ValueBased でアノテーションが付与されているため、次のコードではコンパイル時に警告が発生します。


Double d = 20.0;
synchronized (d) { ... } // javac の警告

2021.1 の新機能です