問題タブ [autocloseable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
281 参照

java - ラムダの使用は、AutoCloseable を実装していないクラスの安全で正しい、同等の回避策ですか?

背景: Java クラスInitialDirContextを使用して LDAP ディレクトリにアクセスします。 残念ながら、これは interface を実装していないため、 try-with-resourcesブロックAutoCloseableでは使用できません。

これが私が書いた元のコードです:(この回答に触発されました)

これは安全で、正しく、同等の代替品ですか?

答えはイエスだと思いますが、確認したいと思います。このパターンでグーグルを試しましたが、何も見つかりませんでした。それはとても簡単です!したがって、私はそれが正しくないのではないかと疑っています。

編集:同様のパターンでこの回答を見つけました。

0 投票する
1 に答える
316 参照

java - java.util.logging.FileHandler に try-with-resources を使用するには?

私は以下のコードを持っていて、を使用してログファイルを作成していますjava.util.logging.FileHandler.

このシナリオでは、finally ブロックのリソースを手動で閉じる必要があります。

このコードは機能します。Autocloseableさて、インターフェースを実装するかもしれないと思いました。そこで、リソースが自動的に閉じられるようにtry-with-resourcesforを使用することにしました (リソースを閉じる手動のジョブを削除するため)。FileHandler

私が試したコードは以下のとおりです。

しかし、このコードは機能しません。

次のようなエラーが表示されます。

The resource type FileHandler does not implement java.lang.AutoCloseable'

  • 可能であれば、try-with-resources を使用してファイル ハンドラーを自動的に閉じる方法は?

  • 手動で閉じる必要がありますか? または、私が取ることができる他のアプローチがあります。

0 投票する
2 に答える
171 参照

java - リソースを閉じることは、それを開く関数の責任であるべきですか?

上記のコードでは、ResultSet は によって開かれましexecuteQueryたが、によって閉じられていmapResultToRecordます。findRecordsそれはそれを閉じるのに理想的な場所ですか、それとも代わりに関数が責任を負うべきですか?