在任何情况下,使用 final 实例变量而不是 静态最终实例变量,当您在编译时已经知道它的值时,它对所有实例都是相同的?
我的意思是,尽管这种初始化在语法上是有效的:
class Test {
final int size = 3;
...
}
它将为每个实例创建一个副本,所以问题是在任何情况下这样做是否有意义,而不是:
class Test {
static final int size = 3;
...
}
并为所有实例制作一份副本。
谢谢
最佳答案
final 但非静态变量的目的是拥有一个对象范围的常量。它应该在构造函数中初始化。
class A {
final int a;
A(int a) {
this.a = a;
}
}
如果在声明中初始化变量,最好使用 static 关键字。
关于java - 使用在编译时已知值的最终实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20003659/