在哪里初始化JavaBean的字段?
Where to initialize the field of a JavaBean?
如果我将初始化代码放在 place 1
,beanValue
不会被初始化。
但是 place 2
有效。为什么?
public class AJavaBean {
private String beanValue = "default bean value 1"; <==place 1
public AJavaBean() {
// beanValue = "default bean value 2"; <== place 2
}
public String getContent() {
return beanValue;
}
public void setContent(String arg) {
beanValue = arg;
}
}
两者都有效。您的 "place 1" (声明)首先发生,然后 "place 2" (构造函数)发生。如果 "place 1" 似乎不起作用,您必须稍后进行更改。
初始化实例变量的正常位置是在构造函数中,但是您也可以使用 初始化程序块,它发生在前两个之间(声明之后,构造函数之前):
class A {
private int i;
// initializer block
{
i = 1;
}
}
如果我将初始化代码放在 place 1
,beanValue
不会被初始化。
但是 place 2
有效。为什么?
public class AJavaBean {
private String beanValue = "default bean value 1"; <==place 1
public AJavaBean() {
// beanValue = "default bean value 2"; <== place 2
}
public String getContent() {
return beanValue;
}
public void setContent(String arg) {
beanValue = arg;
}
}
两者都有效。您的 "place 1" (声明)首先发生,然后 "place 2" (构造函数)发生。如果 "place 1" 似乎不起作用,您必须稍后进行更改。
初始化实例变量的正常位置是在构造函数中,但是您也可以使用 初始化程序块,它发生在前两个之间(声明之后,构造函数之前):
class A {
private int i;
// initializer block
{
i = 1;
}
}