diff --git a/hutool-core/src/main/java/cn/hutool/core/annotation/AnnotationUtil.java b/hutool-core/src/main/java/cn/hutool/core/annotation/AnnotationUtil.java index 22070a24e..a1301a064 100755 --- a/hutool-core/src/main/java/cn/hutool/core/annotation/AnnotationUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/annotation/AnnotationUtil.java @@ -457,6 +457,9 @@ public class AnnotationUtil { */ public static T getAnnotationAlias(AnnotatedElement annotationEle, Class annotationType) { final T annotation = getAnnotation(annotationEle, annotationType); + if (null == annotation) { + return null; + } return aggregatingFromAnnotation(annotation).synthesize(annotationType); } diff --git a/hutool-core/src/test/java/cn/hutool/core/annotation/AnnotationUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/annotation/AnnotationUtilTest.java index f35456cee..1c724e477 100755 --- a/hutool-core/src/test/java/cn/hutool/core/annotation/AnnotationUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/annotation/AnnotationUtilTest.java @@ -56,6 +56,14 @@ public class AnnotationUtilTest { Assert.assertTrue(AnnotationUtil.isSynthesizedAnnotation(annotation)); } + @Test + public void getAnnotationSyncAliasWhenNotAnnotation() { + getAnnotationSyncAlias(); + // 使用AnnotationUtil.getAnnotationAlias获取对象上并不存在的注解 + final Alias alias = AnnotationUtil.getAnnotationAlias(ClassWithAnnotation.class, Alias.class); + Assert.assertNull(alias); + } + @AnnotationForTest(value = "测试", names = {"测试1", "测试2"}) @RepeatAnnotationForTest static class ClassWithAnnotation{