--- old/src/java.base/share/classes/java/lang/Class.java 2019-12-05 10:07:18.132001000 -0800
+++ new/src/java.base/share/classes/java/lang/Class.java 2019-12-05 10:07:17.908001000 -0800
@@ -207,8 +207,8 @@
*
* The string is formatted as a list of type modifiers, if any,
* followed by the kind of type (empty string for primitive types
- * and {@code class}, {@code enum}, {@code interface}, or
- * @
{@code interface}, as appropriate), followed
+ * and {@code class}, {@code enum}, {@code interface},
+ * @
{@code interface}, or {@code record} as appropriate), followed
* by the type's name, followed by an angle-bracketed
* comma-separated list of the type's type parameters, if any,
* including informative bounds on the type parameters, if any.
@@ -234,6 +234,7 @@
*
* @since 1.8
*/
+ @SuppressWarnings("preview")
public String toGenericString() {
if (isPrimitive()) {
return toString();
@@ -264,6 +265,8 @@
} else {
if (isEnum())
sb.append("enum");
+ else if (isRecord())
+ sb.append("record");
else
sb.append("class");
}
--- old/test/jdk/java/lang/reflect/records/RecordReflectionTest.java 2019-12-05 10:07:18.728001000 -0800
+++ new/test/jdk/java/lang/reflect/records/RecordReflectionTest.java 2019-12-05 10:07:18.500001000 -0800
@@ -23,6 +23,7 @@
/*
* @test
+ * @bug 8235369
* @summary reflection test for records
* @compile --enable-preview -source ${jdk.version} RecordReflectionTest.java
* @run testng/othervm --enable-preview RecordReflectionTest
@@ -51,8 +52,11 @@
public void testIsRecord() {
assertFalse(NoRecord.class.isRecord());
- for (Class> c : List.of(R1.class, R2.class, R3.class))
- assertTrue(c.isRecord());
+ for (Class> c : List.of(R1.class, R2.class, R3.class)) {
+ String message = c.toGenericString();
+ assertTrue(c.isRecord(), message);
+ assertTrue(message.contains("record") , message);
+ }
}
public void testGetComponentsNoRecord() {