Cette règle marque les synchronisations d'instances de classes basées sur les valeurs. La synchronisation des classes suivantes dans votre application est déconseillée :
java.lang.Bytejava.lang.Shortjava.lang.Integerjava.lang.Longjava.lang.Floatjava.lang.Doublejava.lang.Booleanjava.lang.Characterjava.lang.Runtime.Versionjava.util.Optionaljava.util.OptionalIntjava.util.OptionalLongjava.util.OptionalDoublejava.time.Instantjava.time.LocalDatejava.time.LocalTimejava.time.LocalDateTimejava.time.ZonedDateTimejava.time.ZoneIdjava.time.OffsetTimejava.time.OffsetDateTimejava.time.ZoneOffsetjava.time.Durationjava.time.Periodjava.time.Yearjava.time.YearMonthjava.time.MonthDayjava.time.chrono.MinguoDatejava.time.chrono.HijrahDatejava.time.chrono.JapaneseDatejava.time.chrono.ThaiBuddhistDate
De plus, il faut éviter d'effectuer une synchronisation sur l'interface java.lang.ProcessHandle, ses classes d'implémentation et
les classes d'implémentation des collections de classes d'objets dans java.util : List.of, List.copyOf, Set.of, Set.copyOf,
Map.of, Map.copyOf, Map.ofEntries, and Map.entry.
Pour plus d'informations sur ces changements de JDK, voir What's New in JDK 16.
Pour plus d'informations sur le changement de fonctionnalité, voir Warnings for Value-Based Classes.