gpt4 book ai didi

java - 如何修改传递给 Java 方法的枚举

转载 作者:行者123 更新时间:2023-11-29 08:15:43 26 4
gpt4 key购买 nike

public class Test {
private Result result;

public Test(Result res){
this.result = res;
}

public void alter(){
this.result = Result.FAIL;
}
}

public enum Result{ PASS, FAIL, MORE};
public Result myResult = Result.PASS;

Test test = new Test(myResult);
test.alter();

在上面的例子中,我将如何修改 alter 方法中的变量 myResult ?由于 Java 是按值传递的,因此该示例只是将其值分配给 this.result

最佳答案

基本上,你不能,因为 Java 是按值传递的。

在 Java 中,最接近按引用传递行为的方法是创建一个带有 getter 和 setter 的“holder”类;例如

public class ResultHolder {
private Result value;
public ResultHolder(Result initial) { value = initial; }
public void setValue(Result newValue) { value = newValue; }
public Result getValue() { return value; }
}

然后,您可以将 alter() 写成:

public void alter(ResultHolder holder, Result newValue) {
holder.setValue(newValue);
}

请注意,这不是真正的按引用传递。

关于java - 如何修改传递给 Java 方法的枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5030671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com