4

これを行うJDKまたは共通ライブラリにヘルパーメソッドはありますか:

if (resource instanceof AutoCloseable) {
    ((AutoCloseable) resource).close();
}

close()該当する場合は、オブジェクトを呼び出すためのワンライナーです。

リソースの試行については知っていますが、この状況には当てはまりません。close()そして、メソッドを実装しているすべてのクラスがAutoCloseable. しかし、私は上記を何度も書いているようです..

4

3 に答える 3

-1

編集

これをチェックして:

class CloserHelper
{
    public static void close(Object object)
    {
        if (object instanceof AutoCloseable)
        {
            try
            {
                ((AutoCloseable) object).close();
            }
            catch (Exception ignored) { }
        }
    }
}

私はこのようなことを考えることができます

class CloserHelper
{
    public static void close(AutoCloseable obj) throws Exception
    {
        obj.close();
    }
}

それで

CloserHelper.close(resource);

オブジェクトが でない場合は、AutoCloseable単に呼び出すことはできません


例外を無視したい場合

class CloserHelper
{
    public static void close(AutoCloseable obj)
    {
        try
        {
            obj.close();
        }
        catch (Exception e) { }
    }
}
于 2014-03-23T20:04:32.170 に答える