Hello Rafael,

On 7/18/2016 5:43 PM, Rafael Winterhalter wrote:
Hello,
I recognized a failing test on Java 9 caused by a changed return value
returned by toString on an annotation with a class-property.

When calling toString on an annotation: @interface Foo { Class<?> value();
} instantiated as @Foo(Bar.class) with Java 8 it would be printed as:

@Foo(class Bar)

while in Java 9 it is printed as:

@Foo(Bar.class)

Is this change intended? I do not see a big benefit of this implementation
change and it could break code. In my case, the problem is not that big, it
is an easy fix but still, I found it a bit surprising.


I pushed the change your test noticed; it was done as part of

JDK-5040830: (ann) please improve toString() for annotations containing exception proxies
    https://bugs.openjdk.java.net/browse/JDK-5040830

The basic rationale for the change is that "Foo.class" is the syntax that appears when annotations are in source code so the toString() form should generally reflect that.

Thanks for running your project against JDK 9 builds; HTH,

-Joe

Reply via email to