Adding an @Immutable annotation to Java

Alberto Otero Rodríguez albest512 at hotmail.com
Thu Nov 25 08:39:11 UTC 2021


I have not thought about that. I'm not a Java expert.

I just throwed the idea precisely to avoid "fake immutability", because a programmer could think one record is immutable simply by being a record, while this is false.

There are probably lots of problems that need to be taken in consideration (like inheritance). But I just throw the idea because I think it would be a desirable feature.

I would be grateful if some expert could deepen in possible problems and their solutions.

Regards,

Alberto Otero Rodríguez.
________________________________
De: Justin Dekeyser <justin.dekeyser at gmail.com>
Enviado: jueves, 25 de noviembre de 2021 9:27
Para: Alberto Otero Rodríguez <albest512 at hotmail.com>
Cc: core-libs-dev at openjdk.java.net <core-libs-dev at openjdk.java.net>
Asunto: Re: Adding an @Immutable annotation to Java

Hello,

Quick question, out of curiosity: how would it behave with respect to
inheritance? Can a @Immutable class inherit from an non immutable one?
if no: that's a bit annoying, no? (fake immutability)
Can @Immutable class be subclassed to a non @Immutable one? if no:
that's a bit annoying too, no? (downcasting)

Since Object is the super class of everything, it sounds like a
problem. What have you thought about to handle this concern?

Regards,

Justin Dekeyser

On Thu, Nov 25, 2021 at 9:08 AM Alberto Otero Rodríguez
<albest512 at hotmail.com> wrote:
>
> Hi, I was thinking that it could be interesting adding an @Immutable annotation to Java. It would be a marker annotation for the compiler (similar to @FunctionalInterface) in order to throw an error if the annotated class/record has a component that is not @Immutable.
>
> This means that all existing immutable objects (like the primitive-wrapping objects and String) should be annotated with @Immutable and the programmer could, for example, annotate a new record object with @Immutable only if all its fields are annotated with @Immutable.
>
> What do you think?
>
> Regards,
>
> Alberto Otero Rodríguez.


More information about the core-libs-dev mailing list