0

たとえば、リソースのインスタンスをさまざまなオブジェクトに渡す必要がある場合はどうすればよいでしょうか?

try-with-resource の設計は (当然のことながら) そのメンバーの範囲を制限するように構築されているため、その種の設計上の問題にどのように対処するのでしょうか?

まだ try-with-resources を使用して、インスタンスを常に渡していますか? 通常の try-catch-finally ブロックを使用して、メンバーをそのスコープ外に保持しますか?

4

3 に答える 3

0

リソースの試行は常に使用する必要がなく、クローズ可能なオブジェクトが作成されるときに使用する必要があります。渡されたオブジェクトがある場合でも、それは呼び出し元がメソッドを呼び出した try-catch ブロックを持っている必要があることを意味します。次に、外部呼び出し元の try-catch がオブジェクトを閉じます。

于 2014-08-22T08:53:50.373 に答える
0

レイが言ったように、問題は少し抽象的です。2 つのシナリオが頭に浮かびます。

  • リソースへのローカル参照: try-with-resources を使用してください もちろん、リソースを try ブロック内の他のメソッドに渡すことができます。
  • リソースを参照するメンバー変数: クラス自体のインスタンスを try-with-resources ブロックで使用できるように、AutoCloseable の実装を検討してください。
于 2014-08-22T08:52:30.543 に答える