【问题标题】:Java: How to create "variable" fields with static parts?Java:如何使用静态部分创建“变量”字段?
【发布时间】:2021-03-20 10:12:07
【问题描述】:

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

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 + 它们的文字部分)。

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

【问题讨论】:

    标签: java string variables variable-assignment assign


    【解决方案1】:

    两种方式:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2011-01-05
        • 2012-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-20
        • 2011-01-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多