On Sat, 24 Apr 2021 01:32:45 GMT, Tagir F. Valeev <[email protected]> wrote:
>> I decided to show a complete static method in the example, so it could be
>> copied to user utility class as is. Not sure if it's reasonable to add
>> `assert cls.isRecord();` there. Also I don't know whether there's a
>> limitation on max characters in the sample code. Probable a line break in
>> `static <T extends Record>\nConstructor<T> getCanonicalConstructor(Class<T>
>> cls)` is unnecessary.
>>
>> ---
>> Aside from this PR, I've found a couple of things to clean up in
>> `java.lang.Class`:
>> 1. There's erroneous JavaDoc link in `getSimpleName()` JavaDoc (introduced
>> by @jddarcy in #3038). It should be `#isArray()` instead of `isArray()`.
>> 2. Methods Atomic::casAnnotationType and Atomic::casAnnotationData have
>> unused type parameters `<T>`.
>> 3. Probably too much but AnnotationData can be nicely converted to a record!
>> Not sure, probably nobody wants to have `java.lang.Record` initialized too
>> early or increasing the footprint of such a basic class in the metaspace, so
>> I don't insist on this.
>>
>>
>> private record AnnotationData(
>> Map<Class<? extends Annotation>, Annotation> annotations,
>> Map<Class<? extends Annotation>, Annotation> declaredAnnotations,
>> // Value of classRedefinedCount when we created this AnnotationData
>> instance
>> int redefinedCount) {
>> }
>>
>>
>> Please tell me if it's ok to fix 1 and 2 along with this PR.
>
> Tagir F. Valeev has updated the pull request incrementally with three
> additional commits since the last revision:
>
> - Trailing space removed
> - Add a reference from java.lang.Record to related Class methods
> - Fix cosmetic issues
Thank you! I also changed 'This method' to 'The following method', as it looks
like this wording is more commonly used in OpenJDK specs.
-------------
PR: https://git.openjdk.java.net/jdk/pull/3556