Maurizio, > On 10 Dec 2019, at 12:39, Maurizio Cimadamore > <maurizio.cimadam...@oracle.com> wrote: > > Looks good. Thank you. I updated and finalised the CSR. > Minor nits: > > * in getRecordComponents there are some utterings of "true", "false" and > "null" which are not surrounded by a {@code } block. > > * any reason as to why the j.l.Record class is not cached in a static field? > No reason. Done.
Changes over the previous webrev: diff --git a/src/java.base/share/classes/java/lang/Class.java b/src/java.base/share/classes/java/lang/Class.java --- a/src/java.base/share/classes/java/lang/Class.java +++ b/src/java.base/share/classes/java/lang/Class.java @@ -2278,9 +2278,9 @@ * <p> The components are returned in the same order that they are declared * in the record header. The array is empty if this record class has no * components. If the class is not a record class, that is {@link - * #isRecord()} returns false, then this method returns null. Conversely, if - * {@link #isRecord()} returns true, then this method returns a non-null - * value. + * #isRecord()} returns {@code false}, then this method returns {@code null}. + * Conversely, if {@link #isRecord()} returns {@code true}, then this method + * returns a non-null value. * * @return An array of {@code RecordComponent} objects representing all the * record components of this record class, or {@code null} if this @@ -3596,8 +3596,7 @@ this.getSuperclass() == java.lang.Enum.class; } - /** Returns java.lang.Record.class */ + /** java.lang.Record.class */ + private static final Class<?> JAVA_LANG_RECORD_CLASS = javaLangRecordClass(); private static Class<?> javaLangRecordClass() { try { return Class.forName0("java.lang.Record", false, null, null); @@ -3631,7 +3630,7 @@ @jdk.internal.PreviewFeature(feature=jdk.internal.PreviewFeature.Feature.RECORDS, essentialAPI=false) public boolean isRecord() { - return getSuperclass() == javaLangRecordClass() && isRecord0(); + return getSuperclass() == JAVA_LANG_RECORD_CLASS && isRecord0(); } // Fetches the factory for reflective objects Complete webrev: https://cr.openjdk.java.net/~chegar/8235550/webrev.01/ -Chris.