package anotention;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
/**
* 注解解析的工具类
*
* @author Administrator
*
*/
public class AnotentionParseUtils {
/**
* 獲取類,主要先獲取类名
*
* @param className
* @return
* @throws ClassNotFoundException
*/
public static Class getClass(String className)
throws ClassNotFoundException {
if (className.equals(null) || className == null) {
return null;
}
return Class.forName(className);
}
/**
* 解析类注解
*
* @throws ClassNotFoundException
*/
public static void parseClassAnotention(Class<?> cls)throws ClassNotFoundException {
/**
* 判断是否存在指定的注解类型--这里判断是否存在类注解
*/
if (cls.isAnnotationPresent(Anotention.class)) {
Anotention des = (Anotention) cls.getAnnotation(Anotention.class);
System.out.println("解析注解类型值为:" + des.value());
TestAnnotation test = new TestAnnotation();
test.test();
}
}
/**
* 解析方法上的注解
*
* @throws ClassNotFoundException
*/
public static void parseMethodAnotention(Class<?> cls) throws ClassNotFoundException {
final Method[] method = cls.getMethods();
for (Method ms : method) {
if (ms.isAnnotationPresent(Anotention.class)) {
Anotention methodDes = (Anotention) ms
.getAnnotation(Anotention.class);
System.out.println("解析方法上的注解:" + methodDes.value());
System.out.println("解析方法上的注解:desc" + methodDes.desc());
}
}
}
/**
* 解析属性注解
*
* @throws ClassNotFoundException
*/
public static void parseAttributeAnotention(Class<?> cls)throws ClassNotFoundException {
Field[] fileds = cls.getDeclaredFields();
for (Field f : fileds) {
if (f.isAnnotationPresent(Anotention.class)) {
Anotention methodDes = (Anotention) f
.getAnnotation(Anotention.class);
System.out.println("解析属性上的注解:" + methodDes.value());
System.out.println("解析属性上的注解:desc" + methodDes.desc());
}
}
}
}
注解解析工具类
最新推荐文章于 2022-06-21 21:22:05 发布