Adding an @Immutable annotation to Java
Justin Dekeyser
justin.dekeyser at gmail.com
Thu Nov 25 08:27:31 UTC 2021
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