Java 类org.springframework.util.ReflectionUtils.FieldFilter 实例源码

项目:phone    文件:MyBatisUtil.java   
/**
 * 解析对象为Model
 * 自定义filter
 * @param obj
 * @param parseSuper 是否解析父类
 * @return
 */
public static List<Model> parseByObject(Object obj,boolean parseSuper,FieldFilter ff){
    List<Model> list = new ArrayList<>();
    if (obj==null) {
        return list;
    }
    //解析Field
    FieldCallback fc = new FieldCallback() {
        @Override
        public void doWith(Field field) throws IllegalArgumentException, IllegalAccessException {
            if (ff != null && !ff.matches(field)) {
                return;
            }
            Model m = parseByField(obj, field);
            if (m!=null) {
                list.add(m);
            }
        }
    };
    if (parseSuper) {
        ReflectionUtil.doWithFields(obj.getClass(),fc);
    }else{
        ReflectionUtil.doWithLocalFields(obj.getClass(),fc);
    }
    return list;
}