首页 / JAVA / 私有变量在类之外被修改 – Java
私有变量在类之外被修改 – Java
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了私有变量在类之外被修改 – Java,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1205字,纯文字阅读大概需要2分钟。
内容图文
![私有变量在类之外被修改 – Java](/upload/InfoBanner/zyjiaocheng/731/28e821a967b448f1a657030db480ec5a.jpg)
我正在循环一些数据,创建一个ArrayList< ArrayList< Cell>>每一步.每个Cell类都存储一行和col(以及其他内容).
我的问题是,当我之后调查我的listOfCells时,每个Cell对象都有相同的行(myData的最后一行.这只发生在行中,列应该是它们应该的(也就是说,它们本身是唯一的).可以看出,行正在递增,但是当它正确时,它会更改listOfCells中行的所有值.
我不知道是什么造成了这个.
创建Cell
Cell cell = null;
int row = 0;
int col = 0;
ArrayList<Cell> tmpCellList = new ArrayList<Cell>();
ArrayList<ArrayList<Cell>> listOfCells = new ArrayList<ArrayList<Cell>>();
for (ArrayList<double> eachRow : myData) {
row++;
for (double eachCol : eachRow) {
col++;
cell = new Cell();
cell.setCol(col);
cell.setRow(row);
cell.setValue(eachCol);
tmpCellList.add(cell);
}
listOfCells.add(row-1, tmpCellList);
}
细胞类
public class Cell {
private int row;
private int col;
private double value;
public void setRow(int rowIn) {
this.row = rowIn;
}
public int getRow() {
return row;
}
public void setCol(int colIn) {
this.col = colIn;
}
public int getCol() {
return col;
}
public void setValue(double val) {
this.value = val;
}
public double getValue() {
return value;
}
解决方法:
您的所有行都是相同的ArrayList< Cell>.
因此,它们都包含相同的细胞.
您需要为每一行创建一个新的ArrayList< Cell>().
内容总结
以上是互联网集市为您收集整理的私有变量在类之外被修改 – Java全部内容,希望文章能够帮你解决私有变量在类之外被修改 – Java所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。