我已经设置了一个用于跟踪类的注释,但是当我尝试编译使用注释的任何java代码时,我收到错误。
这是注释代码:
package tlib.anno;
import java.lang.annotation.*;
@Retention( RetentionPolicy.RUNTIME )
@Target( ElementType.TYPE )
public @interface Class
{
String author();
String contact();
String creationDate();
String creationTime();
String lastUpdateDate();
String lastUpdateTime();
int version() default 1;
int majorVersion() default 0;
int minorVersion() default 0;
int build() default 1;
}
然后当我尝试使用这样的注释时:
import tlib.anno.Class;
...
@Class( author = "tjlevine",
creationDate = "2/18/09",
creationTime = "11:20:16 PM",
lastUpdateDate = "2/18/09",
lastUpdateTime = "11:27 PM",
version = 1,
majorVersion = 1,
minorVersion = 0 )
public class Vector2d implements Cloneable
{
...
}
编译器给出了这个错误:
/media/disk/programming/java/tLib/src/tlib/math/Vector2d.java:13: annotation tlib.anno.Class is missing contact
谷歌对这个错误没什么帮助,我无法弄清楚它告诉我的是什么。
答案 0 :(得分:3)
将其更改为:
public @interface Class {
String author() default "";
String contact() default "";
String creationDate() default "";
String creationTime() default "";
String lastUpdateDate() default "";
String lastUpdateTime() default "";
int version() default 1;
int majorVersion() default 0;
int minorVersion() default 0;
int build() default 1;
}
基本上编译器抱怨是因为你定义它的方式,联系是必需的,你还没有指定它。
当然,您可能不希望所有这些属性都是可选的。只是不要为任何需要的人指定默认值。