Java中未初始化的变量和成员
考虑一下:
public class TestClass { private String a;
private String b;
public TestClass()
{
a = "initialized";
}
public void doSomething()
{
String c;
a.notify(); // This is fine
b.notify(); // This is fine - but will end in an exception
c.notify(); // "Local variable c may not have been initialised"
}
}
我不明白 “ b”从不初始化,但会给出与“ c”相同的运行时错误,这是编译时错误。为什么局部变量和成员之间存在差异?
编辑:将成员设为私有是我的初衷,但问题仍然存在…
回答:
确定分配的规则非常困难(请阅读JLS第三版的第16章)。在字段上强制执行明确分配是不现实的。就目前而言,甚至可以在初始化最终字段之前观察它们。
以上是 Java中未初始化的变量和成员 的全部内容, 来源链接: utcz.com/qa/402541.html