java - 如何动态更改方法内的对象属性

标签 java parameter-passing

我有这个问题,因为我正在努力让我的程序“更好”:P

class GlobalVariables {

    int att1;
    int att2;
    int att2;...

我使用该类来处理我的程序中需要的几乎所有全局值。

该类GlobalVariables包含许多属性,每一个属性都是从传感器检索的,并且可以从 method3 进行更改这是一种将某些值保持在一定范围内的验证方法。

在主类中,我有一个另一个类的对象(比如说 class2 )。

这个对象(比如说 car )有一个方法:

car.method(gl)

glGlobalVariables 的实例.

现在,在方法内部,我调用 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/

相关文章:

c - 如何从单独的函数解析命令行参数

JavaScript 参数传递

java - 具有屏幕旋转的 AsyncTask - onRetainNonConfigurationInstance 已弃用

java - 从 c/c++ 定义/实例化 java 对象

java - 获取用户输入并在java中更改它

java - 未找到类定义 WSDL2JAVA 轴 1.4

php - 如何使用外部 URL 或链接打开自定义选项卡及其 div?

c++ - 调用一个类的构造函数,被多个类继承

java - 如何在带有嵌入式tomcat的Spring Boot应用程序中设置域名

Java:将字符串转换为整数时出现 NumberFormatException