packagecom.cglibs;importjava.lang.annotation.Annotation;importjava.lang.reflect.Field;importjava.lang.reflect.Method;importjava.lang.reflect.Modifier;importjava.util.Arrays;/*** 测试运行时注解*/
public classTestRuntimeAnnotation {/*** 测试运行时注解*/
public static voidmain(String[] args) {
StringBuilder sb= newStringBuilder();
Class> cls = RuntimeAnnotation.class;//获取指定类型的注解
sb.append("Class注解:").append("\n");
ClassInfo classInfo= cls.getAnnotation(ClassInfo.class);if (classInfo != null) {
sb.append(Modifier.toString(cls.getModifiers())).append(" ")
.append(cls.getSimpleName()).append("\n");
sb.append("注解值: ").append(classInfo.value()).append("\n\n");
}
sb.append("Field注解:").append("\n");
Field[] fields=cls.getDeclaredFields();for(Field field : fields) {
FieldInfo fieldInfo= field.getAnnotation(FieldInfo.class);if (fieldInfo != null) {
sb.append(Modifier.toString(field.getModifiers())).append(" ")
.append(field.getType().getSimpleName()).append(" ")
.append(field.getName()).append("\n");
sb.append("注解值: ").append(Arrays.toString(fieldInfo.value())).append("\n\n");
}
}
sb.append("Method注解:").append("\n");
Method[] methods=cls.getDeclaredMethods();for(Method method : methods) {
MethodInfo methodInfo= method.getAnnotation(MethodInfo.class);if (methodInfo != null) {
sb.append(Modifier.toString(method.getModifiers())).append(" ")
.append(method.getReturnType().getSimpleName()).append(" ")
.append(method.getName()).append("\n");
sb.append("注解值: ").append("\n");
sb.append("name: ").append(methodInfo.name()).append("\n");
sb.append("data: ").append(methodInfo.data()).append("\n");
sb.append("age: ").append(methodInfo.age()).append("\n");
Annotation[][] parameterAnnotations=method.getParameterAnnotations();for(Annotation[] a : parameterAnnotations
) {if (a != null) {for(Annotation b : a
) {if (AutoUserModel.class.isAssignableFrom(b.annotationType())) {
AutoUserModel b1=(AutoUserModel) b;
sb.append("找到了 AutoUserModel =").append(b1.value()).append("\n");
}if (AutoPlatformModel.class.isAssignableFrom(b.annotationType())) {
AutoPlatformModel b1=(AutoPlatformModel) b;
sb.append("找到了 AutoPlatformModel =").append(b1.value()).append("\n");
}
}
}
}
}
}
System.out.print(sb.toString());
}
}