On Thu, 10 Feb 2022 05:49:47 GMT, Joe Darcy <da...@openjdk.org> wrote:
> Two changes to the toString output for annotations to give better source > fidelity: > > 1) For enum constants, call their name method rather than their toString > method. An enum class can override the toString method to print something > other than the name. > > 2) Switch from using binary names (names with "$" for nested types) to > canonical names (names with "." with nested types) > > Various existing regression tests are updated to accommodate the changes. > > Please also review the CSR: > https://bugs.openjdk.java.net/browse/JDK-8281568 Changes requested by sbran...@github.com (no known OpenJDK username). src/java.base/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java line 256: > 254: return Objects.toString(finalComponent.getCanonicalName(), > 255: "<no canonical name>") + > 256: arrayBrackets.toString() + ".class"; Since we're using the canonical name now (which takes the array brackets into account), can't the whole method be simplified down to the following? Suggestion: return Objects.toString(clazz.getCanonicalName(), "<no canonical name>") + ".class"; ------------- PR: https://git.openjdk.java.net/jdk/pull/7418