优化如下代码:ArrayNode ents2 = (ArrayNode)jsonNode.get("ents"); for (int i = 0; i < ents2.size(); i++) { List<BoAttribute> boAttrList = JsonUtil.toBean(ents2.get(i), BoEnt.class).getBoAttrList(); // 计算提交的 varchar 类型字段总长 int columnType = 0; for (BoAttribute ba : boAttrList) { if (Column.COLUMN_TYPE_VARCHAR.equals(ba.getColumnType())) { columnType += ba.getCharLen(); } } if (columnType > 16299){ throw new BaseException("字符串类型创建过长"); } }
时间: 2023-06-05 19:08:20 浏览: 83
xfs_dir2_priv.rar_V2
ArrayNode ents2 = (ArrayNode) jsonNode.get("ents");
for (JsonNode ent : ents2) {
BoEnt boEnt = JsonUtil.toBean(ent, BoEnt.class);
List<BoAttribute> boAttrList = boEnt.getBoAttrList();
// 计算提交的 varchar 类型字段总长
int columnType = 0;
for (BoAttribute ba : boAttrList) {
if (Column.COLUMN_TYPE_VARCHAR.equals(ba.getColumnType())) {
columnType += ba.getCharLen(); // 使用累加的方式计算 varchar 字段总长
}
}
if (columnType > 16299){
throw new BaseException("字符串类型创建过长");
}
}
优化思路:
1. 使用增强for循环替换普通循环,增强for循环更加简洁易读。
2. 使用累加的方式计算 varchar 字段总长,避免重复计算和错误计算数据。
阅读全文