2014-06-10 120 views
-4

我想缓存arrlist值以便在类中可用,我定义了一个空arrlist,并从一个方法中添加值并最终尝试获取该全局值定义arralist值....Java-如何将数据临时存储在数组列表中

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

我甚至不看问号在您的文章。 – Smutje

+0

@Smutje upated,谢谢 –

+1

你是否知道'ArrayList'值被缓存在你的代码中。 – Salah

回答

3

在你的代码中添加值this.list和检查obj.getArrlstValues(),当这个!= OBJ

所以你永远不会更新你看的同一个列表!

可以使用this.getArrlstValues()(或只是getArrlstValues())并删除这一行:

Test obj=new Test() 
+0

那么我应该怎么做才能更新并获得缓存的值呢? –

+0

调用getArrlstValues()而不是obj.getArrlstValues() – BobTheBuilder

+0

很高兴我能帮忙:) – BobTheBuilder

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 
    } 
相关问题