閉じる必要があるリソースを割り当てた Java クラスがあります。これを強制する方法がよくわかりません。現在のアプローチでは、 interface を実装していますAutoCloseable
。呼び出し元が時々呼び出すことを期待し、すべてのメソッドの開始時にチェックされる close をclose()
追加し、の場合、メソッドは throws します。boolean
true
IllegalStateException
呼び出し元が呼び出すclose()
必要があることと、すべてのメソッドの開始時に閉じていることを確認する必要があることの両方は、あまり良くありません。これを回避するためのベストプラクティスはありますか?