2013-05-05 96 views
-2

我使用類型對象,我用循環內部的數據填充它,並在最後我想清除裏面的數據,我沒有看到任何選項來清除它(+ CTRL空格鍵)我不想爲它創建新實例,因爲我只想創建一次對象類型,是否有解決方法來清除它?清除類型對象的數據

我只想爲specObject執行以下操作,即創建實例類型列表或對象,並且比我有循環來填充此對象中的數據,當我完成並希望在specObject中創建新實例時我想清除之前,我應該怎麼做?

List<Object> itemObject = null; 
     Object specObject = null; 

     // Check instance type whether is list or specific object instance 
     if (multiplicity.equals(MULTI_N)) { 
      itemObject = new ArrayList<Object>(); 
      return itemObject; 
     } else if (multiplicity.equals(MULTI_1)) { 
      return specObject; 
     } else { 
      return specObject; 
     } 
+0

這裏的一些代碼會非常方便。 – christopher 2013-05-05 11:42:28

+3

我們不知道你在說什麼類型。你還沒有真正解釋爲什麼你不想創建一個新的實例 - 你基本上說過,「我不想,因爲我不想」而不是提供一個真正的理由。 – 2013-05-05 11:43:13

+0

@ ChrisCooney-添加了 – 2013-05-05 11:51:05

回答

1

可以調用List對象的clear方法。這將刪除所有元素,而無需創建新實例。該文檔是here

只是要注意的對象引用

當我完成,並要在其中創建specObject新的實例我想之前清除它,我應該怎麼做呢?

比方說,你有一個清單:

ArrayList<String> strings = new ArrayList<String>(); 

如果一些字符串對象添加到這個列表:

strings.add("Hello"); 
strings.add("There"); 
strings.add("StackOverflow"); 

然後你廢了strings對象。

strings = null; 

您已經有效地刪除了列表中的所有元素?爲什麼?那麼當你聲明ArrayList<String> strings;時,你並沒有創建一個新的對象。您正在創建一個新對象的引用(指針)。爲了說明這一點:

String s = "Hello"; 
String s2 = s; // s2 points to the same object that s points to. 
String s3 = "Another String"; // S3 points to a different object. 

的一個例外是,如果你聲明:

String s = "Hello"; 
String s2 = "Hello"; // s2 will point to the same object as s. 

當一個對象不被任何指向,它是由垃圾收集器刪除。所以有效,如果你聲明:

strings = null; 

你移除所有已添加到String子對象。