自定义注解

记录一点关于自定义注解的小事儿

记录一些遇到过的问题

“Cannot find method 'value'”

定义了一个自定义注解,

@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface EnumConvert {
    String path();
}

然后在使用的时候,

@EnumConvert("com.carrot.common.constants.SexEnum")

当这样写的时候,就报了一个错,—— “Cannot find method 'value'”
奇怪了!!!

明明之前也有这样写过,为什么这次就提示这个玩意儿呢,
当写成

@EnumConvert(path = "com.carrot.common.constants.SexEnum")

的时候,就可以了。

但作为一个开发人员不太能够忍受这个事儿(主要是还有点时间),
然后查了一下,
原来,在注解里面,如果不想指定属性,并不是任意属性都可以省略这个 "xx属性="这个的,
它是有条件的,只有这个属性为 value 的时候,才可以省略。emmm, 就仅 value 这个名称。

于是, 把自定义注解写成:

@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface EnumConvert {
    String value();
}

它果然就好了。

好吧,一个小知识的记录

posted @ 2022-12-31 15:07  aaacarrot  阅读(184)  评论(0编辑  收藏  举报