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

回到顶部