java - Java POJO Setter 函数正在更新列表中所有索引的值
问题描述
我一直在编写一段代码,在验证特定列表中的值并基于一些内部应用程序检查后,使用循环更新列表值。然而,在第一次循环尝试期间的这个过程中,列表中所有索引的值都得到更新。下面是代码。有人可以帮助我为什么它在第一次迭代期间更新所有索引而不是仅在第一次迭代期间更新第一个索引?
public class Xlist {
private String parm1;
private String param2;
public String getParam1() {
return param1;
}
public void setParam1(String param1) {
this.param1 = param1;
}
public String param2;
}
public Void setParam2(String param2) {
this.param2 = param2;
}
}
用法:
Xlist xlist =[{1,Alpha},{2,Beta},{3,Gamma}],
for(int i=0;i<xlist.size();i++){
if(i==0){
logger.info("Working on fixing the bug which is updating all the list values in single shot. Looking for values before first update");
logger.info("Value at 1"+":"+xlist.get(0).getParam2());
logger.info("Value at 2"+":"+xlist.get(1).getParam2());
logger.info("Value at 3"+":"+xlist.get(2).getParam2());
}
xlist.get(i).setParam2("Hello"+String.valueof(xlist.get(i).getParam2()));
if(i==0){
logger.info("Working on fixing the bug which is updating all the list values in single shot. Looking for values after first update");
logger.info("Value at 1"+":"+xlist.get(0).getParam2());
logger.info("Value at 2"+":"+xlist.get(1).getParam2());
logger.info("Value at 3"+":"+xlist.get(2).getParam2());
}
}
输出如下:
致力于修复单次更新所有列表值的错误。在第一次更新之前寻找值
Value at 1: Alpha
Value at 2: Beta
Value at 3: Gamma
致力于修复单次更新所有列表值的错误。第一次更新后寻找值
Value at 1: Hello Alpha
Value at 2: Hello Alpha
Value at 3: Hello Alpha
解决方案
请看你的代码:
您正在执行此操作,并且在其中您正在执行更新 + 尝试打印所有 3 个值,但您只更新一次。
if (i==0) {
}
从所有地方摆脱 if (i==0){} 并更改您的打印语句和设置语句以使用 (i) 代替:
logger.info("Value at " + i +":"+xlist.get(i).getParam2());
xlist.get(i).setParam2("Hello"+String.valueof(xlist.get(i).getParam2()));
推荐阅读
- solr - TestContainers 中的 Zookeeper + Solr
- amazon-ecs - 如何从 ECS 集群中获取所有日志
- pyspark - 具有多个值的 reduceByKey
- bash - 在 Docker 命令行上展开容器内的环境变量
- json - 如何处理 json Observable
- java - 如何编译swagger-codegen生成的java代码
- c - 回调 C 中的多个函数
- javafx - JavaFx:关于石英调度器
- javascript - 使用 webpack 将 CSS 转换为 JS
- google-apps-script - 在构建脚本以在 Google API 中查找地点并返回相关数据时遇到问题