JDK 9 RFR of JDK-8169479: java.lang.reflect.Constructor class has wrong api documentation
joe darcy
joe.darcy at oracle.com
Wed Nov 23 16:10:14 UTC 2016
Hello,
Please review the changes to address
JDK-8169479: java.lang.reflect.Constructor class has wrong api
documentation
http://cr.openjdk.java.net/~darcy/8169479.0/
Patch inline below. There are a few issues reported in the bug:
* The Constructor.toString method fails to state it prints out "throws"
information. The implementation already does this and the analogous
methods Constructor.toGenericString, Method.toString, etc. explicitly
mention throws information already.
* The specification of Executable.getDeclaringClass can be overridden to
be more precise in the Constructor and Method subclasses.
* In Constructor.toGenericString, "return type" is used where "class
name" is meant.
Thanks,
-Joe
--- old/src/java.base/share/classes/java/lang/reflect/Constructor.java
2016-11-23 07:33:00.095083685 -0800
+++ new/src/java.base/share/classes/java/lang/reflect/Constructor.java
2016-11-23 07:32:59.927083679 -0800
@@ -200,7 +200,8 @@
}
/**
- * {@inheritDoc}
+ * Returns the {@code Class} object representing the class that
+ * declares the constructor represented by this object.
*/
@Override
public Class<T> getDeclaringClass() {
@@ -321,6 +322,11 @@
* public java.util.Hashtable(int,float)
* }</pre>
*
+ * <p>If the constructor is declared to throw exceptions, the
+ * parameter list is followed by a space, followed by the word
+ * "{@code throws}" followed by a comma-separated list of the
+ * thrown exception types.
+ *
* <p>The only possible modifiers for constructors are the access
* modifiers {@code public}, {@code protected} or
* {@code private}. Only one of these may appear, or none if the
@@ -357,13 +363,13 @@
* "<code><i>Type</i>...</code>".
*
* A space is used to separate access modifiers from one another
- * and from the type parameters or return type. If there are no
+ * and from the type parameters or class name. If there are no
* type parameters, the type parameter list is elided; if the type
* parameter list is present, a space separates the list from the
* class name. If the constructor is declared to throw
* exceptions, the parameter list is followed by a space, followed
* by the word "{@code throws}" followed by a
- * comma-separated list of the thrown exception types.
+ * comma-separated list of the generic thrown exception types.
*
* <p>The only possible modifiers for constructors are the access
* modifiers {@code public}, {@code protected} or
--- old/src/java.base/share/classes/java/lang/reflect/Method.java
2016-11-23 07:33:00.495083699 -0800
+++ new/src/java.base/share/classes/java/lang/reflect/Method.java
2016-11-23 07:33:00.343083694 -0800
@@ -211,7 +211,8 @@
}
/**
- * {@inheritDoc}
+ * Returns the {@code Class} object representing the class or interface
+ * that declares the method represented by this object.
*/
@Override
public Class<?> getDeclaringClass() {
@@ -372,7 +373,7 @@
* the method name, followed by a parenthesized, comma-separated
* list of the method's formal parameter types. If the method
* throws checked exceptions, the parameter list is followed by a
- * space, followed by the word throws followed by a
+ * space, followed by the word "{@code throws}" followed by a
* comma-separated list of the thrown exception types.
* For example:
* <pre>
@@ -428,8 +429,8 @@
* parameter list is present, a space separates the list from the
* class name. If the method is declared to throw exceptions, the
* parameter list is followed by a space, followed by the word
- * throws followed by a comma-separated list of the generic thrown
- * exception types.
+ * "{@code throws}" followed by a comma-separated list of the generic
+ * thrown exception types.
*
* <p>The access modifiers are placed in canonical order as
* specified by "The Java Language Specification". This is
More information about the core-libs-dev
mailing list