Support for partial Java types

Gunnar Morling gunnar at
Wed Apr 11 18:47:53 UTC 2018


The ongoing records discussion made me remember a proposal I made a while
ago but which went without much feedback back then -- adding support for
partial types to the Java language:

The idea would be to allow a Java class to be split up into multiple source
files, where typically one of them would be hand-written by the developer
and other partials would be created at compile time by code generators,
based on meta-data given in the main partial.

This would essentially allow to implement something like "records" using
compile time tooling (annotation processors), which e.g. could add getters,
equals()/hashCode()/toString(), constructors etc. in derived partials,
based on (annotated) field definitions in the main partial.

Such approach wouldn't yield one canonical records representation baked
into the language, but would allow for more tailored definitions, each
suitable for different use cases. Of course a de-facto standard may evolve
over time. I can see how this could be considered as an advantage by some
and as disadvantage by others.

I felt it'd be a good time to raise the idea again to gauge what others
here think.



More information about the amber-dev mailing list