importjava.lang.annotation.Retention;
importjava.lang.annotation.RetentionPolicy;
importjava.lang.reflect.Method;
@Retention(RetentionPolicy.RUNTIME)
@interfaceMySingle{
intvalue();//thisvariablenamemustbevalue
}
注意:在自定义注释时候,想让java反射机制,得到注释,则,在定义注释时候,一定要加上@Retention(RetentionPolicy.RUNTIME)
并且,所有的注释,都是Annotation的子类,
classSingle{
@MySingle(100)
publicstaticvoidmyMeth(){
Singleob=newSingle();
try{
Methodm=ob.getClass().getMethod("myMeth");
MySingleanno=m.getAnnotation(MySingle.class);
System.out.println(anno.value());//displays100
}catch(NoSuchMethodExceptionexc){
System.out.println("MethodNotFound.");
}
}
publicstaticvoidmain(Stringargs[]){
myMeth();
}
}