2014-11-24 46 views
0

我有Worklight HTTP Adapter,它創建Java對象,這個對象與DB連接,觸發指定的查詢並將結果返回給適配器,然後將結果返回給移動應用程序。當Worklight Adapter發佈java對象時?

Java對象在finalize方法中關閉Database的連接,但問題是即使在完成適配器調用之後,還沒有調用finalize方法。

在從適配器返回之前,我也爲對象分配了null。

因此,我想知道Adapter何時發佈Java Object,以及何時它的finalize方法會被調用?

+0

終結者不保證永遠不會被調用。您需要重新編寫代碼以基於其他事件關閉連接,或者更好地使用連接池。 – chrylis 2014-11-24 06:59:23

+0

@chrylis,如何在Java中使用連接池以及它的優點? – 2014-11-24 08:44:02

+0

你怎麼沒有使用數據庫適配器來爲你打電話。你可以調用另一個適配器 – tik27 2014-11-25 04:41:48

回答

1

JavaDoc的說,關於最終化():

通過在物體上的垃圾收集器時調用無用單元收集確定不存在於對象的更多引用。

因此,您的finalize方法會在GC啓動時調用。