空检查时可能未初始化错误

Might not have been initialized error at null check

我正在检查变量是否已初始化,但此时 netbeans 给我 variable reader might not have been initialized 警告。我如何 fix/suppress 这个?

这是我的代码(摘要):

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

if检查的重点是判断是否初始化。

最佳做法是什么?

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

改变

final Reader reader;

Reader reader = null;

确保它有一个初始值。

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

您不能重新分配结局变量!你得改变你的

final Reader reader;

Reader reader = null;  

并给reader一个初始值。