我在自定义注释下面写了。
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
String value();
}
并使用如下注释。
@MyAnnotation("someValue")
public void someMethod(){
}
上面的代码工作正常,没有任何问题。 但是在注释类中, value()方法名称我必须重新定义。我可以这样做吗?
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
String name();
}
我尝试过,但是eclipse正在给出编译错误。
- The attribute value is undefined for the annotation type
MyAnnotation
- The annotation @MyAnnotation must define the attribute
name
任何原因?
答案 0 :(得分:3)
像这样使用:
@MyAnnotation(name="someValue")
public void someMethod(){
}
因为默认情况下注释具有值方法所以如果你指定这样
@MyAnnotation("someValue")
public void someMethod(){
}
默认情况下会将其视为value="someValue"