java:如何用静态部分创建“变量”字段?

ejk8hzay  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(308)

我有很多字段依赖于一个字段的值,比如:

private String root;
private String rootHide = root+"&hide";
private String rootApple = root+".apple.me";
...

问题是, root 仅在方法内赋值(非静态,如果有关系的话):

public myMethod () {
    root = "myRoot";
    System.out.println(rootHide);
    System.out.println(rootApple);
}

在赋值给 root , rootHide 以及 rootApple 已分配(null+其文字部分)。
我想要,当根被分配时,要“重新分配”的变量(或者选择新根引用的变量),并因此导致 "myRoot&hide" 以及 "myRoot.apple.me" 分别地

kfgdxczn

kfgdxczn1#

两种方式:

使用方法设置根

…并在该方法中设置其他两个字段:

private void setRoot(String root) {
    this.root = root;
    rootHide = root+"&hide";
    rootApple = root+".apple.me";
}

你会一直这么做的 setRoot("myRoot"); 而不是 root = "myRoot"; ####使用方法获取其他两个字段
…并用以下方法计算它们的值:

private String getRootHide() {
    return root + "&hide";
}

private String getRootApple() {
    return root + ".apple.me";
}

然后删除字段 rootHide 以及 rootApple ,并且总是打电话 getRootHide() 以及 getRootApple 而不是访问 rootHide 以及 rootApple .

7cwmlq89

7cwmlq892#

或者创建一个方法,在调用时更新所有变量

static update(String root){
rootHide = root+"&hide";
rootHide = root+"&hide";
}

每次更新根时调用该方法,或者包括根的设置,以便只需要调用它而不首先设置根。

相关问题