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