使用注解
@Description(desc="gac",autor="gac1",age=18)
public String eyeColor(){
return "red";
}
解析注解
通过反射获取类,函数或成员上的运行时注解信息,从而实现动态控制程序运行的逻辑
public class ParseAnn{
//使用类加载器加载类 获得类上的注解
try{
Class c = Class.forName("com.ann.test.Child");//这个类使用了定义的注解
//2.找到类上面的注解
boolean isExists = c.isAnnotationPresent(Description.class);
if(isExits){
//拿到注解实例
Description d = (Description)c.getAnnotation(Description.class);
System.out.println(d.value());
}
//找到方法上的注解
Method[] ms = c.getMethods();
for(Method m:ms){
boolean isMExits = m.isAnnotationPresent(Description.class);
if(isMExits){
Description d = (Description)m.getAnnotation(Description.class);
System.out.println(d.value());
}
}
//另外一种解析方法
for(Method m : ms){
Annotation[] as = m.getAnnotations();
for(Annotation a:as){
if(a instanceof Description){
Description d = (Description)a;
System.out.println(d.value());
}
}
}
}catch(ClassNotFoundException e){