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=…)
,但这本身可能有问题。