Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在哪里初始化JavaBean的字段?_Java_Jakarta Ee_Javabeans - Fatal编程技术网

在哪里初始化JavaBean的字段?

在哪里初始化JavaBean的字段?,java,jakarta-ee,javabeans,Java,Jakarta Ee,Javabeans,如果我将init代码放在位置1,则beanValue不会初始化。 但是place2起作用了。为什么? public class AJavaBean { private String beanValue = "default bean value 1"; <==place 1 public AJavaBean() { // beanValue = "default bean value 2"; <== place 2 } publ

如果我将init代码放在
位置1
,则
beanValue
不会初始化。 但是
place2
起作用了。为什么?

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;
    }

}
公共类AJavaBean{
私有字符串beanValue=“default bean value 1”两者都起作用。您的“位置1”(声明)首先发生,“位置2”(构造函数)第二次发生。如果“位置1”似乎不起作用,您必须稍后更改它

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


清理您的项目。因为位置1复制到位置2之上(如果您检查字节码的话)。似乎Eclipse有时会欺骗我。。。
class A {
    private int i;
    // initializer block
    {
        i = 1;
    }
}