这甚至可能,少数认为其可能的,我是在这里看到过link ..但是当我亲自试过它给了我编译时错误..是否可以在声明后初始化最终变量..?
我的意思是,
Class A{
private final String data;
public A(){
data = "new string";
}
}
谢谢前进..
这甚至可能,少数认为其可能的,我是在这里看到过link ..但是当我亲自试过它给了我编译时错误..是否可以在声明后初始化最终变量..?
我的意思是,
Class A{
private final String data;
public A(){
data = "new string";
}
}
谢谢前进..
是的,这是可能的。班级写小案件c。否则你的代码是完全正常的(除了身份证明):
public class A {
private final String data;
public A() {
data = "new string";
}
}
你可以在声明后初始化一个最终的实例变量。
您发布的代码的问题是大写C
。鲍里斯指出应该是class
。
就像鲍里斯建议的代码很好。然而,你不能做的是为最终的变量数据赋值第二个值。 data = "another string";
将不会编译,因为数据是最终的,因此在初始化后它的值不能被改变。
public class A {
private final String data;
public A() {
data = "new string";
data = "another string";
}
}
很可能您有多个构造函数,在这种情况下,您必须在每个构造函数中初始化最终实例字段。
你得到的编译时错误是什么? – Rocky 2012-02-25 09:03:36
也许你的编译时错误与大写'Class'有关。其余的都很好,必须编译。 – home 2012-02-25 09:03:49
**空白的最终字段数据可能尚未初始化** ...这是我得到的.. – ngesh 2012-02-25 09:05:19