[英]java spring validation - specify field type for custom validation annotation
[英]How can I specify the type of the field that an Annotation should be applied to in Java?
我正在創建一個簡單的注釋,以幫助我在Android應用程序中擴大設置。 注釋是這樣的:
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface CoreSettings {
String name() default "";
}
我想確保它將僅在類型擴展了名為BaseSettings的自定義類的字段中使用。 在下面的示例中,MainSettings擴展了抽象類BaseSettings。
public class MainActivity extends BaseActivity {
@CoreSettings("prefs")
MainSettings settings;
(...)
}
我該怎么做?
是的,如果您在錯誤類型的字段上編寫注釋,則可能導致編譯器發出錯誤消息。
您不能僅使用@Target
元注釋來執行此操作。 另外,您需要編寫注釋處理器。 注釋處理器將檢查源代碼中注釋@CoreSettings
每次出現,如果@CoreSettings
應用於不擴展BaseSettings
的類型,則注釋處理器將發出錯誤(就像其他編譯器錯誤一樣)。 這是一個簡短的簡單注釋處理器。
您僅在運行注釋處理器時會收到編譯時警告,但可以在項目的構建文件中將-processor ...
命令行參數添加到javac。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.