diff --git a/byte-buddy-dep/src/main/java/net/bytebuddy/description/annotation/AnnotationDescription.java b/byte-buddy-dep/src/main/java/net/bytebuddy/description/annotation/AnnotationDescription.java index 867d4ea7f43..32c2d48c6e8 100644 --- a/byte-buddy-dep/src/main/java/net/bytebuddy/description/annotation/AnnotationDescription.java +++ b/byte-buddy-dep/src/main/java/net/bytebuddy/description/annotation/AnnotationDescription.java @@ -803,7 +803,7 @@ public int hashCode() { @Override public String toString() { - return type.toString(); + return PropertyDispatcher.TYPE_LOADED.toString(type); } } } @@ -944,7 +944,7 @@ public int hashCode() { @Override public String toString() { - return "AnnotationDescription.AnnotationValue.ForComplexArra{" + + return "AnnotationDescription.AnnotationValue.ForComplexArray{" + "unloadedComponentType=" + unloadedComponentType + ", componentType=" + componentType + ", annotationValues=" + annotationValues + @@ -1031,11 +1031,11 @@ public int hashCode() { @Override public String toString() { - StringBuilder stringBuilder = new StringBuilder("["); + StringBuilder stringBuilder = new StringBuilder().append(componentType == Class.class ? PropertyDispatcher.TypeRenderer.CURRENT.adjust('[') : '['); for (AnnotationValue.Loaded value : values) { stringBuilder.append(value.toString()); } - return stringBuilder.append("]").toString(); + return stringBuilder.append(componentType == Class.class ? PropertyDispatcher.TypeRenderer.CURRENT.adjust(']') : ']').toString(); } } } @@ -1222,9 +1222,7 @@ protected String toStringRepresentation() { } else { toString.append(", "); } - toString.append(entry.getKey().getName()); - toString.append('='); - toString.append(entry.getValue().toString()); + toString.append(entry.getKey().getName()).append('=').append(entry.getValue().toString()); } toString.append(')'); return toString.toString(); diff --git a/byte-buddy-dep/src/main/java/net/bytebuddy/utility/PropertyDispatcher.java b/byte-buddy-dep/src/main/java/net/bytebuddy/utility/PropertyDispatcher.java index 0a331907a08..24008557114 100644 --- a/byte-buddy-dep/src/main/java/net/bytebuddy/utility/PropertyDispatcher.java +++ b/byte-buddy-dep/src/main/java/net/bytebuddy/utility/PropertyDispatcher.java @@ -496,7 +496,7 @@ public String toString() { * A delegate for rendering a {@link Class} or {@link TypeDescription}. Starting with Java 9, such values are enclosed * in curly braces and are rendered as class literals to better match the source code. */ - protected enum TypeRenderer { + public enum TypeRenderer { /** * A type renderer for a legacy VM prior to Java 8. @@ -536,7 +536,7 @@ protected String render(TypeDescription typeDescription) { /** * The type renderer to be used on the current VM. */ - protected static final TypeRenderer CURRENT = make(); + public static final TypeRenderer CURRENT = make(); /** * Finds the type renderer for the current VM. @@ -569,7 +569,7 @@ private static TypeRenderer make() { * @param delimiter The delimiter being used. * @return The adjusted delimiter. */ - protected char adjust(char delimiter) { + public char adjust(char delimiter) { return (char) (delimiter + offset); } diff --git a/byte-buddy-dep/src/test/java/net/bytebuddy/description/annotation/AbstractAnnotationDescriptionTest.java b/byte-buddy-dep/src/test/java/net/bytebuddy/description/annotation/AbstractAnnotationDescriptionTest.java index 4f1de84ada9..dfae74a6ad6 100644 --- a/byte-buddy-dep/src/test/java/net/bytebuddy/description/annotation/AbstractAnnotationDescriptionTest.java +++ b/byte-buddy-dep/src/test/java/net/bytebuddy/description/annotation/AbstractAnnotationDescriptionTest.java @@ -454,6 +454,10 @@ public enum SampleEnumeration { VALUE, OTHER } + @Retention(RetentionPolicy.RUNTIME) + public @interface Sample2 { + Class foo(); + } @Retention(RetentionPolicy.RUNTIME) public @interface Sample {