Details
-
Enhancement
-
Resolution: Fixed
-
P4
-
17
-
b25
Description
The class hierarchy rooted at `ConstantDesc` in package `java.language.constant` is used to denote a nominal descriptor for a loadable constant value, as defined in JVMS 4.4.
The javadoc for these classes mentions that this hierarchy may become sealed if supported by the Java language, for example:
* @apiNote In the future, if the Java language permits, {@linkplain ConstantDesc}
* may become a {@code sealed} interface, which would prohibit subclassing except by
* explicitly permitted types. Clients can assume that the following
* set of subtypes is exhaustive: {@link String}, {@link Integer},
* {@link Long}, {@link Float}, {@link Double}, {@link ClassDesc},
* {@link MethodTypeDesc}, {@link MethodHandleDesc}, and
* {@link DynamicConstantDesc}; this list may be extended to reflect future
* changes to the constant pool format as defined in JVMS 4.4.
Now JEP 409 proposes that sealed classes become a final feature, we can amend the class hierarchy to be sealed.
The javadoc for these classes mentions that this hierarchy may become sealed if supported by the Java language, for example:
* @apiNote In the future, if the Java language permits, {@linkplain ConstantDesc}
* may become a {@code sealed} interface, which would prohibit subclassing except by
* explicitly permitted types. Clients can assume that the following
* set of subtypes is exhaustive: {@link String}, {@link Integer},
* {@link Long}, {@link Float}, {@link Double}, {@link ClassDesc},
* {@link MethodTypeDesc}, {@link MethodHandleDesc}, and
* {@link DynamicConstantDesc}; this list may be extended to reflect future
* changes to the constant pool format as defined in JVMS 4.4.
Now JEP 409 proposes that sealed classes become a final feature, we can amend the class hierarchy to be sealed.
Attachments
Issue Links
- csr for
-
JDK-8265131 Make ConstantDesc class hierarchy sealed
- Closed
- relates to
-
JDK-8283414 Update java.base to use sealed classes (umbrella)
- Closed