本帖最后由 付信榕 于 2012-6-13 10:29 编辑
package it.cast.da2y;
//自定义注解ItcastAnnotaton
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.annotation.ElementType;
@Retention(RetentionPolicy.RUNTIME)//元注解,为注解ItcastAnnotation作解释。表示该注解保留的的阶段是运行期
@Target({ElementType.METHOD,ElementType.TYPE})//元注解,表示 ItcastAnnotation 作用的目标可以是方法上,也可以是 TYPE 上。
public @interface ItcastAnnotaton {
String color();//String color();default "blue";
String value();//特殊,当仅是此需设置值时(原value=“abc”),可省略为(“abc”)
int[] arrrayAttr()default{3,4,4};//数组成员
}
注解ItcastAnnotaton 的应用
@ItcastAnnotaton(color= "red",value="abc",arrrayAttr=1)//作用在类上,打印结果为red
public class AnnotationTest1 {
/**
* @param args
*/
//@ItcastAnnotaton(color= "red",value="abc",arrrayAttr=1)//作用在方法上时,就无打印结果,注解 ItcastAnnotaton的作用目标不是类和方法上的吗?为什么在这里又不行呢???求解。
public static void main(String[] args)throws Exception {
// TODO Auto-generated method stub
if(AnnotationTest1.class.isAnnotationPresent(ItcastAnnotaton.class)){
ItcastAnnotaton annotation = (ItcastAnnotaton) AnnotationTest1.class.getAnnotation(ItcastAnnotaton.class);
System.out.println(annotation.color());
}
}
}
|