奇数注释错误

时间:2009-08-15 05:45:50

标签: java annotations

我已经设置了一个用于跟踪类的注释,但是当我尝试编译使用注释的任何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

谷歌对这个错误没什么帮助,我无法弄清楚它告诉我的是什么。

1 个答案:

答案 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;
}

基本上编译器抱怨是因为你定义它的方式,联系是必需的,你还没有指定它。

当然,您可能不希望所有这些属性都是可选的。只是不要为任何需要的人指定默认值。