我无法从列表中检索数据.这些值似乎永远不会被存储,或者对象被初始化了?我创建了一个存储一些变量的类:
public class storage{
public int a = 0;
public int b = 0;
}
Run Code Online (Sandbox Code Playgroud)
然后我创建了另一个填充a的类,并且b创建了一些值并将该对象存储在列表中
public class anotherclass{
public List<storage> alldata = new ArrayList<storage>();
public void filldata(){
storage tmp = new storage();
for (int i = 1; i <= 10; i++){
tmp.a = i;
tmp.b = i;
alldata.add(tmp);
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我在我的主类中运行filldata()时,然后尝试从列表中获取对象a和b仍然设置为0.
public static void main(String[] args){
anotherclass obj = new anotherclass();
obj.filldata()
for (int i = 0; i <= obj.alldata.size() - 1; i++){
System.out.println(obj.alldata.get(i).a)
System.out.println(obj.alldata.get(i).b)
//Outputs as all zeroes
}
}
Run Code Online (Sandbox Code Playgroud)
怎么会这样?
尝试每次都创建对象.否则它使用相同的对象.所以只有它不会添加到您的列表中.
storage tmp = null;
for (int i = 1; i <= 10; i++)
{
tmp = new storage();
tmp.a = i;
tmp.b = i;
alldata.add(tmp);
}
Run Code Online (Sandbox Code Playgroud)
代替
storage tmp = new storage();
for (int i = 1; i <= 10; i++)
{
tmp.a = i;
tmp.b = i;
alldata.add(tmp);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
114 次 |
| 最近记录: |