我在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