class Temp{
final static int x;
public static void main(String[] args){
}
}
编译错误:变量x未在默认构造函数中初始化
为什么它说默认构造函数没有初始化,因为变量是静态的? 这里默认构造函数的作用是什么?
答案 0 :(得分:3)
你没错,错误信息不是很有帮助。必须在声明点或通过静态块初始化static final
变量(约定通常在static
之前放置final
):
final static int x = 0;
//or
final static int y;
static {
y = 0;
}
我不能说任何相关的错误报告,所以如果你愿意,你可以提交一个。
答案 1 :(得分:1)
它不仅是静态的......它是最终的静态:) 静态最终成员应该内联或静态块初始化。