Java 尝试将资源初始化为null

Java 尝试将资源初始化为null,java,try-with-resources,Java,Try With Resources,我正在重构一些像这样的旧代码: OutputStreamWriter osw1 = null; OutputStreamWriter osw2 = null; try { // Some statements... if (condition1) osw1 = createAnOutputStreamWriter(params1...); // Some more statements... if (condition2)

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

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
use try with resources。你能提供一些建议吗?

不能在每个if中尝试使用资源?嗨,我想做一些类似的事情。你找到解决方案了吗?@oggiemc没有理想的解决方案,除了azro的建议-
如果(条件1)尝试(osw1=…)
,但这本身可能有问题。不能在每个if中尝试使用资源吗?嗨,我想做一些类似的事情。你找到解决方案了吗?@oggiemc没有理想的解决方案,除了azro的建议-
如果(条件1)尝试(osw1=…)
,但这本身可能有问题。