717 Star 2.8K Fork 762

abel533 / Mapper

 / 详情

FiledHelper _getFields 数组越界

已完成
创建于  
2015-12-11 12:20

Field[] fields = entityClass.getDeclaredFields();

        for(int superClass = 0; superClass < fields.length; ++superClass) {
            Field field = fields[superClass];
            if(!Modifier.isStatic(field.getModifiers())) {
                if(level.intValue() != 0) {
                    ((List)fieldList).add(superClass, new EntityField(field, (PropertyDescriptor)null));
                } else {
                    ((List)fieldList).add(new EntityField(field, (PropertyDescriptor)null));
                }
            }
        }

for循环如果是静态字段的话,不能自增,否则造成数组越界

评论 (5)

Field[] fields = entityClass.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
    Field field = fields[i];
    //排除静态字段,解决bug#2
    if (!Modifier.isStatic(field.getModifiers())) {
        if (level != 0) {
            fieldList.add(i, new EntityField(field, null));
        } else {
            fieldList.add(new EntityField(field, null));
        }
    }
}

你代码从哪儿复制的,为什么我看不懂?

反编译的
int t = 0;
for (int i = 0; i < fields.length; i++) {
Field field = fields[i];
//排除静态字段,解决bug#2
if (!Modifier.isStatic(field.getModifiers())) {
if (level != 0) {
fieldList.add(t, new EntityField(field, null));
t++;
} else {
fieldList.add(new EntityField(field, null));
}
}
}

fieldList.add(i, new EntityField(field, null));
这一行会越界。

已处理。

状态更改为 已关闭

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
8363 free 1578914558
Java
1
https://gitee.com/free/Mapper.git
git@gitee.com:free/Mapper.git
free
Mapper
Mapper

搜索帮助