这是否可能,很少有人认为可能,我也在这里看到它link ..但是当我亲自尝试它时,它给我编译错误..
我的意思是,
Class A{
private final String data;
public A(){
data = "new string";
}
}
提前致谢..
答案 0 :(得分:7)
是的,有可能。类用小案例c编写。否则你的代码完全没问题(除了识别):
public class A {
private final String data;
public A() {
data = "new string";
}
}
答案 1 :(得分:4)
您可以在声明后初始化最终实例变量。
您发布的代码的问题是大写C
。鲍里斯指出,它应该是class
。
答案 2 :(得分:2)
像鲍里斯建议的那样,代码很好。但是你不能做的是为最终的变量数据分配第二个值。 data = "another string";
将无法编译,因为数据是最终的,因此在初始化后无法更改其值。
public class A {
private final String data;
public A() {
data = "new string";
data = "another string";
}
}
答案 3 :(得分:2)
您可能拥有多个构造函数,在这种情况下,您必须初始化每个构造函数中的最终实例字段。