2012-11-18 65 views
1

我的最後一個java分配,我都很好,除了下面這兩行。它的打算是什麼,我該怎麼做?任何人都會對此表示讚賞。在Java中使用對象的副本

我不允許使用在這一個

元,不要直接給定的包裝類對象(整數,字符,雙人間等)。使用對象的副本。

昨天我跟我的助手和他傷心的是,當你分配這樣的值:

整數ASD;
asd = new Integer(10);

取而代之的是:

整數ASD;
asd = 10;

它複製對象並分配值。然後(我認爲)舊記錄符合垃圾收集器的條件。

+0

什麼語言?你能發佈你的代碼嗎? – ryadavilli

+0

搜索「java copy objet」會發現很多信息,例如[this SO question](http://stackoverflow.com/questions/869033/how-do-i-copy-an-object-in-java),[這篇維基百科文章](http://en.wikipedia.org/wiki/Clone_ \(Java_method \)) – dbr

回答

0

還挺聽起來像他們釣

object.clone(); 
1

我想這意味着你應該使用方法,如Integer#parseIntInteger#valueOf而不是直接創建對象使用構造的。

+0

或者它可能意味着「不要使用自動裝箱」。即不要做'Integer myInt = 10;'。 – johv

0

您可能需要序列化和反序列化它。然後你可以得到另一個對象的副本。見https://stackoverflow.com/a/2836659/940313

順便說一句,Object.clone()protected默認情況下,所以你可能無法通過這種方式來複制對象,除非相應的類真正實現clone(),並聲明爲public