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

时间:2015-06-08 06:59:00

标签: java initialization final

我正在检查变量是否已初始化,但此时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);
    }

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

最佳做法是什么?

2 个答案:

答案 0 :(得分:13)

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

更改

final Reader reader;

Reader reader = null;

确保它具有初始值。

这样,如果reader = new Reader(directory);引发异常,则{finally}阻止测试时reader将包含null

答案 1 :(得分:1)

你无法重新分配结局变量!你必须改变你的

  

最终读者读者;

Reader reader = null;  

并为读者提供初始值。