List<SysPressureAndClassName> sysPressureAndClassNames = new ArrayList<>();
if(CollectionUtils.isNotEmpty(sortedList)){
for (SysMinePressureData sysMinePressureData:sortedList) {
SysPressureAndClassName sysPressureAndClassName = new SysPressureAndClassName();
sysPressureAndClassName.setClassName(((SysMinePressureDataBase)sysMinePressureData).getClassName());
if(StringUtils.isNotBlank(sysMinePressureData.getMaxPressure())){
sysPressureAndClassName.setMaxPressure
(JSON.parseObject(sysMinePressureData.getMaxPressure(), new TypeReference<Map<String, Integer>>() {}));
}
if(StringUtils.isNotBlank(sysMinePressureData.getMinPressure())){
sysPressureAndClassName.setMinPressure
(JSON.parseObject(sysMinePressureData.getMinPressure(), new TypeReference<Map<String, Integer>>() {}));
}
sysPressureAndClassName.setStartTime(sysMinePressureData.getRecordStartTime());
sysPressureAndClassName.setEndTime(sysMinePressureData.getRecordEndTime());
sysPressureAndClassNames.add(sysPressureAndClassName);
}
}
最后执行结果,数据不同。
注意而如果一旦在循环外创建对象时,对对象操作时,用到的就是同一地址。因此得到的数据会不准确。因为同一地址,只要对对象赋值有改变,那么之前的对象的值也会随之改变。
下面截图证明
比如说再循环外创建对象
而因为每次操作的对象都是同一地址
最终得到的结果