try-with-resources初始化为null

时间:2017-08-16 14:33:13

标签: java try-with-resources

我正在重构一些看起来像这样的旧代码:

OutputStreamWriter osw1 = null;
OutputStreamWriter osw2 = null;

try {

    // Some statements...

    if (condition1)
        osw1 = createAnOutputStreamWriter(params1...);

    // Some more statements...

    if (condition2)
        osw2 = createAnOutputStreamWriter(params2...);

    // Some more statements...

} finally {
    try {
        if (osw1 != null)
            osw1.close();
        if (osw2 != null)
            osw2.close();
    } catch (Exception e) {
        // Ignore
    }
}

我想清理代码,但是当变量osw1和osw2更改为引用块内的不同对象时,无法直接替换最外层try使用try-with-resources。你能提出任何建议吗?

0 个答案:

没有答案