Java: 如何使用静态部分创建 "variable" 字段?

Java: How to create "variable" fields with static parts?

我有很多字段依赖于一个字段的值,像这样:

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 赋值时,rootHiderootApple 已经赋值(null + 它们的文字部分)。

我希望在分配 root 时“重新分配”变量(或选择新的 root 引用的变量),因此分别导致 "myRoot&hide""myRoot.apple.me"

两种方式:

使用方法设置root

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

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

然后您将删除字段 rootHiderootApple,并始终调用 getRootHide()getRootApple 而不是访问 rootHiderootApple.

也许创建一个在调用时更新所有变量的方法

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

每次更新root时调用该方法,或者包括root的设置,这样只需要调用它而不需要先设置root。