首页 > 解决方案 > Java:如何使用静态部分创建“变量”字段?

问题描述

我有很多字段取决于一个字段的值,如下所示:

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

我希望,当分配根时,要“重新分配”的变量(或获取新根引用的变量),因此分别导致"myRoot&hide""myRoot.apple.me"

标签: javastringvariablesvariable-assignmentassign

解决方案


两种方式:

使用方法设置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";
}

然后,您将删除字段rootHideand rootApple,并始终调用getRootHide()andgetRootApple而不是访问rootHideand rootApple


推荐阅读