On Sat, 17 Apr 2021 08:55:59 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.
This pull request has now been integrated.
Changeset: 3e667cc4
Author: Tagir F. Valeev <[email protected]>
URL:
https://git.openjdk.java.net/jdk/commit/3e667cc40521dfb6d07dda07c2f33e37086ee64b
Stats: 24 lines in 2 files changed: 17 ins; 0 del; 7 mod
8265356: need code example for getting canonical constructor of a Record
Reviewed-by: smarks
-------------
PR: https://git.openjdk.java.net/jdk/pull/3556