2015年5月2日 星期六

自訂 Annotation 型態 限制

http://openhome.cc/Gossip/Java/CustomizeAnnotation.html

在定義標註時,可使用java.lang.annotation.Target限定標註使用位置,限定時可指定java.lang.annotation.ElementType的列舉值:
package java.lang.annotation;
public enum ElementType {
    TYPE,                  // 用於類別、介面、列舉等
    FIELD,                 // 用於資料成員
    METHOD,                // 用於方法
    PARAMETER,             // 用於方法上的參數
    CONSTRUCTOR,           // 用於建構式
    LOCAL_VARIABLE,        // 用於區域變數
    ANNOTATION_TYPE,       // 用於標註型態
    PACKAGE,               // 適用套件
    TYPE_PARAMETER,        // 用於泛型宣告,JDK8新增
    TYPE_USE               // 用於各種型態,JDK8新增
}
例如想將@Test8限定只能用於方法:
package cc.openhome;

import java.lang.annotation.Target;
import java.lang.annotation.ElementType;

@Target({ElementType.METHOD})
public @interface Test8 {}

沒有留言:

張貼留言