2015-10-19 62 views
0

我正在嘗試創建自定義約束驗證程序註釋。以下是我的註釋定義。 Eclipse會抱怨「目標註釋不允許用於該位置」。保留和約束也是如此。我使用Java 1.7自定義約束驗證程序註釋

package com.test; 

import static java.lang.annotation.ElementType.*; 
import static java.lang.annotation.RetentionPolicy.*; 

import java.lang.annotation.Target; 
import java.lang.annotation.Retention; 
import javax.validation.Constraint; 
import javax.validation.Payload; 

@Target(PARAMETER) 
@Retention(RUNTIME) 
@Constraint(validatedBy = MyValidator.class) 
public interface MyValidationAnnotation{ 

    String message() ; 

    Class<?>[] groups() ; 

    Class<? extends Payload>[] payload() ; 
} 
+0

不應該'public interface'是'public @interface'? – Mubin

+0

@Mubin。賓果,謝謝! – user994165

回答

3

變化public interfacepublic @interface

Creating Your Own Annotations

它可以創建自己的(自定義)的Java註釋。 註解在它們自己的文件中定義,就像Java類或 接口一樣。下面是定製的Java註解例如:

@interface MyAnnotation { 

    String value(); 

    String name(); 
    int  age(); 
    String[] newNames(); 

} 

這個例子定義了一個註釋稱爲MyAnnotation其具有四個 元件。 注意@interface關鍵字。這向Java 編譯器發出這是Java註釋定義的信號。

+0

@Target(PARAMETER) @Retention(RUNTIME) @Constraint(validatedBy = MyValidator.class)給出錯誤爲什麼 –

+0

沒有線索。你認爲告訴我們錯誤是否合理? – Keith

+0

對不起,我糾正了.. –