In recent versions of javac,
AnnotationValue#toString
returns a string representation of the annotation
value that uses simple names. If the string is used in generated source code, it
may require additional imports.
For example, instead of the class literal com.pkg.Bar.class
, javac now returns
just Bar.class
, which may require adding an import for for com.pkg.Bar
.
auto-common
’s AnnotationValues#toString
method produces a string that uses
fully qualified names for annotations, class literals, and enum constants,
ensuring that source code containing that string will compile without additional
imports.
TIP: AnnotationValues#toString
may be beneficial even if the string isn’t
being used in generated code, e.g. if it’s part of a diagnostic message or
assertion failure message, since the fully qualified names makes it clearer
which types are being referred to.
Suppress false positives by adding the suppression annotation @SuppressWarnings("AnnotationValueToString")
to the enclosing element.