作者tkcn (小安)
看板java
标题Re: [问题] object指向null後 class variable怎麽办?
时间Fri Nov 13 09:57:14 2009
※ 引述《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
1F:推 SansWord:自己写--sum就不能写finalize喔~这两者是互斥的 11/13 10:52
2F:推 legnaleurc:应该说为什麽对 instance 的操作要动到 static ? 11/13 11:50
3F:→ legnaleurc:这样的话可能要写个函式专门去清这些东西 11/13 11:52
4F:→ tkcn:自己写 --sum 我就不会再 finalize() 里头再写一次 --sum 呀 11/13 12:41
5F:推 cjcat2266:最好自己写一个destroy(),丢掉物件以前自己呼叫一次 11/13 13:24