首页 新闻 搜索 专区 学院

java自定义注解

0
悬赏园豆:20 [待解决问题]

比如有一个自定义注解@Interface ParamTestAnnotation,注解里面没有value()方法,有其他几个方法,使用这个注解的时候,比如@ParamTestAnnotation("aaa"),就会报错cannot find method 'value',自定义注解默认是继承Annotation接口,但是我看Annotation接口没有这个方法呀,为啥自定义注解不指定参数的时候就会报没有value方法?是自定义注解不指定参数名时默认是value属性吗?如果自定义注解只有一个value方法,那使用这个注解的时候也不需要使用name=value这种形式,直接@ParamTestAnnotation("aaa")也是可以的,这是为啥?==

青木年华的主页 青木年华 | 初学一级 | 园豆:133
提问于:2019-03-31 18:15
< >
分享
所有回答(2)
0

@ParamTestAnnotation("aaa")
方法名(@Param("aaa")参数类型 入参名);

一世红尘 | 园豆:321 (菜鸟二级) | 2019-04-01 12:46
0

你自定义的ParamTestAnnotation注解中,可以定义很多项(我也不确定那是否可以称为方法),这里就举个栗子吧,比如String name(),String value(),int age().....
如果你的每一项都没有默认值,那么,一旦要是用ParamTestAnnotation注解,就必须为每一项进行赋值(name、int、value)---》 @ParamTestAnnotation(name="xxx",age=99,value="yy")
如果你自定义的注解中,有某一项有默认值,比如age默认为99,那么,使用注解的时候,可以不为age指定值,只需要为name和value赋值------》@ParamTestAnnotation(name="xxx", value="yyy")
如果你的注解中只有value属性没有默认值(name和age都有默认值了),那么使用注解的时候,可以不为name和age指定值,只需要为value指定值,也就是@ParamTestAnnotation(value="yyy"),此时也可以简写为@ParamTestAnnotation("yyy")
如果每一项都有默认值,则可以只写@ParamTestAnnotation

寻觅beyond | 园豆:607 (小虾三级) | 2019-04-01 20:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册