Re: [問題] object指向null後 class variable怎麼辦?

看板java作者 (小安)時間16年前 (2009/11/13 09:57), 編輯推噓3(302)
留言5則, 4人參與, 最新討論串2/5 (看更多)
※ 引述《johjimakenji (喬治馬健司)》之銘言: : 如果想要刪除一個object 就是令它指向null : 但如果該物件裡包含class varible : 例如 public static int sum = 0; : 每new一次這個object就會sum++ 用來計算總共有幾個object : 但如果把object指向null sum的值並不會改變 : 請問有什麼辦法解決? : 就是想要刪除這個object並讓sum的值正確 寫個 finalize method 吧, 這樣當 GC 去回收此物件時,就會執行到 finalize 了。 不過要注意一點, 並不是將 reference 設成 null,GC 就會立刻回收該物件。 所以如果你希望將 reference 設成 null 時,sum 能立刻反應, 還是自己寫 --sum 吧。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.122.183.171

11/13 10:52, , 1F
自己寫--sum就不能寫finalize喔~這兩者是互斥的
11/13 10:52, 1F

11/13 11:50, , 2F
應該說為什麼對 instance 的操作要動到 static ?
11/13 11:50, 2F

11/13 11:52, , 3F
這樣的話可能要寫個函式專門去清這些東西
11/13 11:52, 3F

11/13 12:41, , 4F
自己寫 --sum 我就不會再 finalize() 裡頭再寫一次 --sum 呀
11/13 12:41, 4F

11/13 13:24, , 5F
最好自己寫一個destroy(),丟掉物件以前自己呼叫一次
11/13 13:24, 5F
文章代碼(AID): #1A_Bpz7K (java)
討論串 (同標題文章)
文章代碼(AID): #1A_Bpz7K (java)