我在Java7中實現了一個類。它不會繼承/實現任何東西。它使用Tess4J,所以我認爲最後釋放資源將會很好。所以我推翻這樣的finalize()方法:爲什麼Netbeans警告我敲定?
@Override
protected void finalize() throws Throwable
{
try
{
TessAPI1.TessBaseAPIDelete(handle);
}
catch(Throwable t)
{
throw t;
}
finally
{
super.finalize();
}
}
Netbeans的8.0.2給我警告了這種方法:
finalize declared()
的NetBeans網站上的描述是不是更有用的對我說:
warns about implementation of Object.finalize()
我沒有推翻像等號或任何其他方法(也許我應該?)。 你能告訴我爲什麼我會收到這個警告嗎?
相關閱讀:http://weblog.ikvm.net/2003/11/09/FinalizeConsideredHarmful。as Java – 2014-12-03 11:43:31
來自Effective Java的報道:「*終結器是不可預知的,通常是危險的,並且通常是不必要的*」。 – assylias 2014-12-03 11:48:07
捕捉並立即重新拋出異常毫無意義。這種擒縱塊可以被移除,因爲它沒有真正的效果。 – Natix 2014-12-03 11:54:25