美文网首页java专题
关于注解处理器的一些思路和API

关于注解处理器的一些思路和API

作者: H_Man | 来源:发表于2017-02-22 17:36 被阅读14次

解析注解类所涉及到的API

Field[] fields = cls.getDeclaredFields();//通过类的字节码文件,获取类的所有字段
boolean flag = field.isAnnotationPresent(HasColumn.class);//判断这个字段有没有加 HasColumn注解,如果有返回true,如果没有返回false

HasColumn  hasColumn = field.getAnnotation(HasColumn.class);//获取这个注解,可以通过这个对象去获得注解的属性,

//工具:根据注解中的属性order来排序list中存放的是要打印的字段
Field[] fields = cls.getDeclaredFields();
String[] strs = new String[fields.length];
//使用双层循环来根据注解中的order排序
for (int i = 0; i < strs.length; i++) {
    for (Field field : fields) {
        if (field.isAnnotationPresent(HasColumn.class) == true) {
            //在这的name只是一个HasColumn对象
            HasColumn name = field.getAnnotation(HasColumn.class);
            if (name.order() == (i + 1)) {
                list.add(name.columnName());
            }
        }
    }
}

解析注解的思路:自定义一个类,方法中传进来的Class clazz (被注解的类的class),反射获得其所有字段,根据字段去判断是否有注解(自定义的那个,图上的HasColumn),然后去操作

相关文章

网友评论

    本文标题:关于注解处理器的一些思路和API

    本文链接:https://www.haomeiwen.com/subject/jypmwttx.html