There's a weird case that seems to be allowed by the Value Objects JVMS
draft:
An abstract class can declare non-static fields, which means it won't
have the ACC_PERMITS_VALUE flag set, but also declare that it implements
the ValueObject interface.
The combination looks just wrong, because no class can subclass such class:
- identity classes are not allowed because of the presence of
the ValueObject interface
- value classes are not allowed because of the absence of
ACC_PERMITS_VALUE
I've looked for a rule that would prohibit such combination in the
JVMS draft but couldn't find one.
Did I miss something?
Fred