下面的代码是从Java编写的。我需要通过函数动态更改变量值。我们如何尽快在changeValue函数下面编写?有什么办法可以将变量引用传递给函数?

public class Project{
    private int value1;
    private int value2;
    private int value3;
    private int value4;

    public static void main(String[] args) {
        this.changeValue("value1",10)
        this.changeValue("value2",25)
        this.changeValue("value3",30)
        this.changeValue("value4",40)
    }

    public String changeValue(String varName,String value){
        if(varName=="value1"){
            this.value1=value
        }else if(varName=="value2"){
            this.value2=value
        }else if(varName=="value3"){
            this.value3=value
        }else if(varName=="value3"){
            this.value4=value
        }
    }

}

最佳答案

您发布的代码包含许多错误;例如,您不能在String中存储int-String value应该为int value。您无法使用static等中的thismain上下文调用实例方法。但是,对于您的问题,可以将changeValue缩短,将值存储在数组中。同样,changeValue不会返回String-但是,如果使它返回Project,则可以将呼叫链接到changeValue()。喜欢,

private int[] values = new int[4];

public static void main(String[] args) {
    Project p = new Project();
    p.changeValue("value1", 10).changeValue("value2", 25)
            .changeValue("value3", 30).changeValue("value4", 40);
    System.out.println(p);
}

public Project changeValue(String varName, int value) {
    int i = Character.digit(varName.charAt(varName.length() - 1), 10) - 1;
    values[i] = value;
    return this;
}

@Override
public String toString() {
    return Arrays.toString(values);
}


另请参见Builder pattern

07-28 01:10