【问题标题】:Object reference is not initialized as null in JAVA对象引用在 JAVA 中未初始化为 null
【发布时间】:2021-10-14 07:09:34
【问题描述】:

根据 JAVA 中的规则,如果声明了对象引用但未初始化,则 JAVA 将其初始化为 null。那么为什么我的代码中会出现这个错误呢?请帮帮我。

Main.java:28: error: variable obj might not have been initialized
        if(obj==null)
           ^
class c {
    int age=12;
    c variable123;
}
public class A {
    c obj;
    if (obj==null) System.out.println(obj);
}

【问题讨论】:

  • 如果下面的答案回答了您的问题,您应该接受它(单击相应答案旁边的复选标记)。这有两件事。它让每个人都知道您的问题已得到您满意的解决,并为帮助您的人提供帮助。 See here 以获得完整的解释。
  • 好的。谢谢你给我建议。

标签: java null object-reference


【解决方案1】:

您误读了文档。类(非final)变量初始化为空值,局部值未初始化,导致编译器错误。

详情请见https://docs.oracle.com/javase/specs/jls/se17/html/jls-16.html

【讨论】:

  • 特别是从JLS "对于局部变量或空白final字段x的每次访问,必须在访问前明确分配x,或者发生编译时错误。”
  • 哦,我明白了。 varible (variable123) 类将被 JAVA 初始化为 null,而 obj 不会。谢谢@Federico klez Culloca 和@9ilsdx 9rvj 0lo。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多