是否有可能在Java中調用int或vector的finalize方法?是否有可能將finalize方法調用爲int或向量?
2
A
回答
6
int
不是一個對象,也沒有方法。
A java.util.Vector
擁有(像任何對象)finalize()
方法,但它在對象被垃圾收集時自動調用。
你永遠不應該寫一個finalize()
方法,這個方法應該被明確地調用,因爲那樣會公然違反最小驚喜的原則。
2
你對此的動機是什麼?這與垃圾收集有何關係?要使對象可收集,您需要刪除對它的所有強引用,而不是調用finalize。
請閱讀垃圾收集這個重要的參考,特別是在敲定部分,部分A.3.6 The Truth About Garbage Collection
2
方法finalize()
從java.lang.Object
繼承。 Java int
是一種原始類型,這些類型不被視爲對象,因此不可能在這些類型上調用finalize。
3
我覺得有些人「嚇壞了」,因爲它在這個問題上有太多不正確的假設。
int
是一個原語,所以它沒有一個finalize方法來調用。
Vector
是由ArrayList在Java 1.2(1998)中替換的遺留類。它有一個被保護的finalize方法。 protected
意味着它只能從一個子類中調用。所以你不能輕易訪問它。
但是,我不建議您致電Vector或任何其他課程。如果你有一個你想要調用的函數的finalize方法,創建一個公共方法,它可以做同樣的事情,而不是調用finalize()
BTW:即使你確實調用過Vector.finalize(),它也不會做任何事情。它繼承Object.finalize()這是{}
相關問題
- 1. 儘管WeakReference沒有調用finalize()方法
- 2. 它是否有可能會將int *轉換爲unsigned int *
- 3. 是否有可能將Scala方法轉換爲python方法
- 4. 是否有強制執行finalize()方法的方法
- 5. 爲什麼Finalize方法不能覆蓋
- 6. Moq沒有調用方法命名爲Finalize
- 7. 將int y轉換爲向量<int>有什麼想法?
- 8. 是否有可能將最終覆蓋的方法標記爲
- 9. c#將方法中的變量定義爲列表 - 是否有可能?
- 10. 是否有可能具有int值和int引用的數組?
- 11. CER是否可以用來保證finalize永不被調用?
- 12. 是否有可能通過靜態方法OCMock類調用?
- 13. 是否有可能從C#winforms調用Javascript方法?
- 14. 是否有可能獲得方法內的調用實例?
- 15. finalize方法
- 16. 在Finalize方法
- 17. finalize()方法
- 18. 是否有任何需要java的finalize方法?
- 19. 是否可以將非同步方法調用爲synchronized?
- 20. 是否有可能使用宏將csv批量轉換爲xls?
- 21. 是否有可能在bash中使用變量作爲語法?
- 22. 爲什麼枚舉常量沒有finalize方法?
- 23. 是否有可能通過方法名
- 24. 是否有可能調用其他方法傳遞args []的main方法?
- 25. C#是否有可能調用具有可選參數的VB6方法?
- 26. 是否有可能爲一個單元測試,以斷定方法調用sys.exit()
- 27. 是否可以使用編組將JavaScript回調方法設置爲C#方法?
- 28. 是否有可能將ons-list設置爲橫向?
- 29. 從類方法調用實例方法:可能或不可以?
- 30. 是否可以使用.insertBefore()或.insertAfter()方法調用html文件?
不要嚇壞了。例如在C#中,即使int也是對象,所以它們有方法。 – Seva 2011-04-30 16:23:48
@Seva:我沒有嚇到,但是你有幾個不好的假設,最重要的是,這不是C#。 – 2011-04-30 16:26:29
永遠不要調用finalize方法。 – MeBigFatGuy 2011-04-30 16:34:40