2011年11月15日 星期二

Annotations的種類


1. Normal Annotations(Full Annotations)
也就是一般形式的 Annotations
範例:
@MyNormalAnnotation(element1="val1", element2="val2")  
public void someMethod() { ... }
2. Single Member Annotations
Annotations 的成員 method 只有一個,這種情況下可以把該 method 命名為 value,以方便使用時直接指定其值。
範例:
@MySingleMemberAnnotation("a single value") public class SomeClass { ... }
3. Marker Annotations
這種 Annotations 只是一種標記作用,沒有任何成員。
範例:
@Deprecated public void doWork()  { ... }

4. Annotation type 內包含其他的 Annotation type
@interface MyATType1 {
     int valX() default 9;
     int valY() default 0;
}

@interface HelloAnnotation {
     enum myScope { LOCAL, WORLD }
     String name() default "Joe";
     myScope scope() default Scope.LOCAL;
     MyATType1 myAnotherAT();
}
....
@HelloAnnotation(scope=HelloAnnotation.myScope.WORLD, myAnotherAT=@MyATType1(valX=5, valY=2))
void myMethod1() {     }

沒有留言: