implementation for java.lang.reflect.RecordComponent

Chris Hegarty chris.hegarty at oracle.com
Tue Oct 8 09:55:17 UTC 2019


Vicente,

> On 7 Oct 2019, at 17:25, Chris Hegarty <chris.hegarty at oracle.com> wrote:
> 
> Vicente,
> 
>> On 5 Oct 2019, at 00:36, Vicente Romero <vicente.romero at oracle.com> wrote:
>> 
>> Hi,
>> 
>> I have pushed which is the first stab in the implementation of java.lang.reflect.RecordComponent, see full code at [1]. I have also removed method Class::getRecordAccessors, in favor or Class::getRecordComponents. 
> 
> Class:: getRecordComponents is not explicit about the ordering of the components. I assume that the returned order is that of the declaration order. Should this be explicit?


Two minor suggestions for Class::getRecordComponents:

1) Explicitly specify the return order to be the same order that the components are declared in the record header. ( similar wording to that of the JSL draft spec )

2) Clarify the behavior for non-record classes and records with no components.

+++ b/src/java.base/share/classes/java/lang/Class.java
@@ -2252,10 +2252,13 @@
 
     /**
      * Returns an array containing {@code RecordComponent} objects reflecting all the
-     * declared record components of the record represented by this {@code Class} object
-     *
-     * @return  the array of {@code RecordComponent} objects representing all the
-     *          record components of this record
+     * declared record components of the record represented by this {@code Class} object.
+     * The components are returned in the same order that they are declared in the
+     * record header.
+     *
+     * @return  The array of {@code RecordComponent} objects representing all the
+     *          record components of this record. The array is empty if this class
+     *          is not a record, or if this class is a record with no components.
      * @throws  SecurityException
      *          If a security manager, <i>s</i>, is present and any of the
      *          following conditions is met:

RecordRefletorTest already covers these cases. I can push this change if we agree.
-Chris.


More information about the amber-dev mailing list