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

标签 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检查的重点是判断是否初始化。

这方面的最佳实践是什么?

最佳答案

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

改变

final Reader reader;

Reader reader = null;

确保它有一个初始值。

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

关于java - 空检查时可能未初始化错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30702904/

相关文章:

java - 为什么我不能将 final long 分配给 int?

java - 确保当构造函数抛出异常时最终变量被初始化

java - 线程 "main"java.lang.IllegalAccessError : 中出现异常

java - 为什么我的空检查这么慢?

java - 为什么我不能以这种方式在 for 循环中定义变量?

ruby - 我如何混入 Singleton 来创建一个接受初始化参数的类?

java - ListView 和线程安全的自定义适配器

java类成员初始化

java - 如何在Java中使用数组而不进行初始化

java - 将属性更改为最终属性