2011-05-10 37 views
1

的Java註解如何給Annotation添加限制?

@Retention(RetentionPolicy.RUNTIME) 
@Target(ElementType.TYPE) 
public @interface OneAnnotation{ 
    String aNumber();   
} 

說我想只允許相匹配的那些字符串格式(「[\ d] +」),其它字符串將被通過無論是編譯錯誤或一些其它通知「故障」。 有沒有這樣做---在註釋的方法上添加對返回值的限制。

有效:

@OneAnnotation(aNumber = 「1234」) 

無效:

@OneAnnotation(aNumber = 「XXXX」) 
+0

語言是什麼? – progo 2011-05-10 10:10:08

+0

您使用的是Java嗎? – Steven 2011-05-10 10:13:22

回答

1

您可能能夠實現這種利用annotation processing

除此之外,無法爲註釋添加任意限制。但是:如果你想要一個數字,爲​​什麼你不使用數字類型,如intlong這裏(取決於你的範圍要求)?

+0

除了註釋處理沒有別的方法? – rayeaster 2011-05-10 13:30:58

+0

是的,據我所知。 (當然,如果你堅持編譯時錯誤,在運行時你可以自由地做任何你想做的事情)。 – 2011-05-10 13:33:26

+0

我只想提醒「OneAnnotation」用戶注意對註釋的限制。所以最好有一個編譯時錯誤。但是我知道註解處理是用來生成文件的,我怎麼用它來實現這個簡單的限制?對於你的問題:實際上,我想要註釋方法的返回值(String)匹配一些正則表達式模式,數字只是一個例子。謝謝 – rayeaster 2011-05-10 13:49:40