RFR: JDK-8322878: Including sealing information Class.toGenericString()
Joe Darcy
darcy at openjdk.org
Wed Jan 3 18:18:48 UTC 2024
On Wed, 3 Jan 2024 16:40:32 GMT, Pavel Rappo <prappo at openjdk.org> wrote:
>> src/java.base/share/classes/java/lang/Class.java line 264:
>>
>>> 262: /**
>>> 263: * Returns a string describing this {@code Class}, including
>>> 264: * information about modifiers, {@linkplain #isSealed() sealing}, and type parameters.
>>
>> If Class.toGenericString is a useful API point for describing the blessed order of modifiers in the JDK
>> perhaps the existing classes that describe modifiers could/should cross reference this method.
>
> Given potential lossiness of source modifiers presentation by java.lang.reflect, I don't think this method is a good host for describing the canonical modifier order. Mentioning? Probably. Describing? No.
>
> Separately, but also related: while it does not seem impossible, this PR does not implement `non-sealed`.
I think the best place, or least-bad place, to discuss the "modifier" ordering of sealed/non-sealed would be an informative note on Modifier.toString(int) -- "The sealed/non-sealed Java language modifiers are not represented in the class file as access flags and thus not modeled by this class [java.lang.reflect.Modifier] .... sealed/non-sealed should be presented in the same location as final."
Since it doesn't seem possible to do so, I did not attempt to relay "non-sealed" information in this PR :-)
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/17239#discussion_r1440765048
More information about the core-libs-dev
mailing list