我有这个问题,因为我正在努力让我的程序“更好”:P
class GlobalVariables {
int att1;
int att2;
int att2;...
我使用该类来处理我的程序中需要的几乎所有全局值。
该类GlobalVariables
包含许多属性,每一个属性都是从传感器检索的,并且可以从 method3
进行更改这是一种将某些值保持在一定范围内的验证方法。
在主类中,我有一个另一个类的对象(比如说 class2
)。
这个对象(比如说 car
)有一个方法:
car.method(gl)
gl
是 GlobalVariables
的实例.
现在,在方法内部,我调用 method2
在里面我打电话method3
(全部来自class2
)。
this.method3 (int att1, int att2, int att3,)
this.method3 (int att2, int att3, int att1,)
this.method3 (int att3, int att1, int att2,)
目前我们有很多method3
的来电这 3 个参数可以是这些传感器值的组合,因此 att1
可能是att37
就说话而言。
所以声明 method3
就像:
public void method3 (int n1, int n2, int n3){
n3=n1+n2;
}
我应该怎么做才能更改 globalVariable.attXXX
当 Java 只是让我们按值传递值时。
我当然可以再创建 2 个方法并调用相应的方法并使用 SET,但我认为这几乎是我想要避免的。
当我说设置时,我的意思是设置者
最佳答案
使用 setter 方法:
static void setAtt3(int x) { att3 = x; }
void method3(int a, int b, IntConsumer setter) {
setter.accept(a + b);
}
调用:
method3(att1, att2, GlobalVariables::setAtt3);
关于java - 如何动态更改方法内的对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47087069/