Java7에서 클래스를 구현했습니다. 상속/구현하지 않습니다. 그것은 Tess4J를 사용하므로 결국 리소스를 해제하는 것이 좋을 것이라고 생각했습니다.왜 Netbeans가 최종 결정을 경고합니까?
이finalize declared()
넷빈즈 웹 사이트에 대한 설명은 나에게 더 도움이되지 않습니다 :
를@Override
protected void finalize() throws Throwable
{
try
{
TessAPI1.TessBaseAPIDelete(handle);
}
catch(Throwable t)
{
throw t;
}
finally
{
super.finalize();
}
}
넷빈즈 8.0.2이 날이 방법에 대한 경고를 제공합니다 : 그래서 이런 식으로 마무리() 메소드를 오버라이드
warns about implementation of Object.finalize()
나는 equals 나 다른 어떤 방법 (다른 부분에서해야할까요?)을 무시하지 않았습니다. 경고를받는 이유를 말해 줄 수 있습니까?
관련 읽기 : http://weblog.ikvm.net/2003/11/09/FinalizeConsideredHarmful.aspx –
Effective Java에서 인용 : "Finalizers는 예측할 수 없으며, 종종 위험하며 일반적으로 불필요합니다 *." – assylias
예외를 잡아 즉시 재발행하는 것은 의미가 없습니다. 이러한 catch 블록은 실제 효과가 없으므로 제거 할 수 있습니다. – Natix