在null检查时可能没有初始化错误

WVr*_*ock 8 java final initialization

我正在检查变量是否已初始化,但此时netbeans正在给我variable reader might not have been initialized警告.我该如何修复/压制这个?

这是我的代码(摘要):

final Reader reader;
try {
        reader = new Reader(directory);
        //additional stuff that can cause an exception
    } catch (Exception ex) {
        //do stuff
    } finally {
        if (reader != null);
    }
Run Code Online (Sandbox Code Playgroud)

if检查的要点是确定它是否已初始化.

这是什么最好的做法?

Era*_*ran 14

如果reader从未初始化,它甚至没有空值.

更改

final Reader reader;
Run Code Online (Sandbox Code Playgroud)

Reader reader = null;
Run Code Online (Sandbox Code Playgroud)

确保它具有初始值.

这样,如果reader = new Reader(directory);抛出异常,readernull在finally块测试时包含.