【发布时间】:2021-09-21 19:26:57
【问题描述】:
我有两个类,“Test1”和“Test0”,如下代码所示。
public class Test1 {
public static void main(String...args) {
System.out.print(Test0.randomName);
}
}
public class Test0 {
public static String randomName = initRandomName();
private static String string0;
static {
string0 = "George";
}
private static String initRandomName() {
return "Mr. "+string0;
}
}
我以为它会打印 Mr. George,但它打印了 Mr. null。 而且我不明白发生了什么。请帮助我。谢谢。
【问题讨论】:
-
在
randomName的初始化之前移动string0的分配应该可以解决它。静态变量可以有空值,randomName在string0被赋值之前就被访问了。