2009-08-15 104 views
1

我已經設置了一個註釋,用於跟蹤類,但是當我嘗試編譯任何使用註釋的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

谷歌對這個錯誤沒有什麼幫助,我不知道它告訴我什麼。

回答

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

基本上是因爲你定義的方式,需要接觸,你有沒有指定的編譯器抱怨。

當然,您可能不想讓所有這些屬性爲可選。只要不指定任何所需的默認值。

+0

非常感謝,現在感覺啞巴,哈哈 – tjlevine 2009-08-15 05:54:45