为什么Java不允许初始化构造函数中的静态final变量
如果声明变量static和final,则需要在声明或static块中初始化它。如果您尝试在构造函数中初始化它,编译器将假定您正在尝试重新分配值,并生成编译时错误–
示例
class Data {
static final int num;
Data(int i) {
num = i;
}
}
public class ConstantsExample {
public static void main(String args[]) {
System.out.println("常量的值: "+Data.num);
}
}编译时错误
ConstantsExample.java:4: error: cannot assign a value to final variable num num = i; ^ 1 error
要使此程序工作,需要将静态块中的final静态变量初始化为−
示例
class Data {
static final int num;
static {
num = 1000;
}
}
public class ConstantsExample {
public static void main(String args[]) {
System.out.println("常量的值: "+Data.num);
}
}输出结果
常量的值: 1000
热门推荐
10 小姨生日祝福语简短独特
11 爱情祝福语大全 简短实际
12 新年祝福语长篇文案简短
13 20岁简短生日祝福语
14 怎么说祝福语简短
15 端午老师祝福语简短优美
16 简短长辈新年祝福语
17 幼儿狗年祝福语大全简短
18 孙子结婚祝福语大全简短