注解用法,使用反射获取方法上的注解信息
作者:互联网
-
@Targe 只允许该注解标注类,方法
-
@Retention 希望这个注解可以被反射
-
注解当中的属性可以是那些值
*byte short int long float double boolean char String class -
枚举
-
如果一个注解的属性名字是一个value的话该属性名可以省略
//@MyAnnotation(name="MyAnnotation")
public @interface MyAnnotation {
String name();
//String value();
//属性指定默认值default
//int age() default 25;
//int[] value();
}
反射方法上的注解
public class ReflectTest {
@MyAnnotation(name="doSome")
public void doSome(){
}
public static void main(String[] args) throws Exception {
//获取doSome方法是的注解信息
Class c =Class.forName("多线程.ReflectTest");
//获取doSome方法
Method doSomeMethod = c.getDeclaredMethod("doSome");
//判断该方法是是否存在这个注解
if (doSomeMethod.isAnnotationPresent(MyAnnotation.class)){
MyAnnotation myAnnotation =doSomeMethod.getAnnotation(MyAnnotation.class);
System.out.println(myAnnotation.name());
}
}
}
标签:反射,String,doSome,class,用法,注解,MyAnnotation,name 来源: https://blog.csdn.net/weixin_53126056/article/details/110953786