下面的代码是从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
等中的this
从main
上下文调用实例方法。但是,对于您的问题,可以将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。