我发现它带有枚举的凝灰岩。这是Kathy Siera书中的一个例子:枚举构造函数静态初始化程序
public class WeatherTest {
static Weather w;
public static void main(String[] args) {
System.out.print(w.RAINY.count + " " + w.Sunny.count + " ");
}
}
enum Weather {
RAINY, Sunny;
int count = 0;
Weather() {
System.out.print("c ");
count++;
}
}
输出结果是c c 1 1.理解。 现在我想如果计数字段是静态的呢?输出是c c 2 2吗? 基于此,我将count变量修改为static。 但是我看到的是这样的: 编译时间错误:非法引用来自初始值设定项的静态字段。
在网上搜索我发现这是Sun的一种循环漏洞,它允许可以改变静态字段的静态方法。好吧..所以现在我用一个静态方法增加我的工作:
令我惊讶的是,我得到的输出:c c 0 0! 任何人都可以在拍摄自己之前向我解释这种行为吗?
请解决您的缩进和括号。 – ardent 2012-07-20 16:35:17
非常凝灰岩的问题!所有的Java程序员,自己装甲:) – Kameron 2012-07-20 16:36:12
ardentsonata:好的 – user1500024 2012-07-20 16:36:50