在哪里初始化JavaBean的字段?

时间:2015-01-28 05:35:57

标签: java java-ee javabeans

如果我将初始化代码放在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;
    }

}

1 个答案:

答案 0 :(得分:2)

两者都有效。你的地点1&#34; (声明)首先发生,&#34;地点2&#34; (构造函数)发生在第二位。如果&#34;放置1&#34;似乎不起作用,您必须稍后更改。

初始化实例变量的正常位置在构造函数中,但是您也可以使用初始化程序块,它发生在前两个之间(在声明之后,在构造函数之前):

class A {
    private int i;
    // initializer block
    {
        i = 1;
    }
}