我希望将arrlist值缓存到一个类中,我可以定义一个空的arrlist并从方法中添加值,然后最终尝试获取全局定义的arralist值....
class Test{
ArrayList list=new ArrayList();
public void addValues(){
list.add("One");
list.add("Two");
list.add("Three");
list.add("Four");
list.add("Five");
getArrlstValues();
}
public void getArrlstValues(){
System.out.println("size of cache arralist=" +list.size());
//why this is showing zero size
}
public static void main(String args[]) {
Test obj=new Test();
obj.addValues();
}
}
答案 0 :(得分:3)
在您的代码中,您向this.list
添加值,并在 this!= obj 时检查obj.getArrlstValues()
。
所以你永远不会更新你看到的同一个列表!
您可以使用this.getArrlstValues()
(或仅getArrlstValues()
)并删除此行:
Test obj=new Test()
答案 1 :(得分:0)
ArrayList list=new ArrayList();
Test obj=new Test()
public void addValues(){
list.add("One"); // working on "this" i.e, the current object
list.add("Two"); // still working on this
list.add("Three");
list.add("Four");
list.add("Five");
obj.getArrlstValues(); // calling getArrlstValues() on a different object. Just use getArrlstValues();
}
public void getArrlstValues(){
System.out.println("size of cache arralist=" +list.size());
//why this is showing zero size --> because for the calling Object i.e, obj, the list is empty
}