Java records used in enums

Kasper Nielsen kasperni at gmail.com
Fri May 21 14:28:27 UTC 2021


On Fri, 21 May 2021 at 14:51, Alberto Otero Rodríguez <albest512 at hotmail.com>
wrote:

> Hi,
>
> I think enums in Java should be immutable. When you let the programmer
> change values in an enum instance, an unexpected behaviour can happen when
> using multiple threads as enum instances are static (singleton).
>
> So, I was wondering why not make enums instances be defined as records
> instead of normal classes.
>

Lots of reasons, for example:
* It would be a breaking change for an almost non-existent problem.
* All internal state of enums would now be public.
* Enum's extend java.lang.Enum, records extend java.lang.Record.
  java.lang.Enum cannot extend java.lang.Record because it has instance
fields.

/Kasper


More information about the core-libs-dev mailing list