gpt4 book ai didi

java - 在java中修改函数内部参数的干净方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 05:07:45 25 4
gpt4 key购买 nike

我有兴趣用 Java 编写这段 C 代码:

// sets n's ith bit from right, i starts from 0
void setBit(int* n, int i){
*n = *n | (1 << i);
}

但是,java 似乎无法传递地址,那么有什么干净的方法呢?

我想到了两种方法,但我想知道是否有更好的方法来做?

方法一:使用数组

 // sets n[0]'s ith bit from right, i starts from 0
public void setBit(int[] n, int i){
n[0] = n[0] | (1 << i);
}

方法二:使用类

private class Data{
int value;
}

// sets d.value's ith bit from right, i starts from 0
public void setBit(Data d, int i){
d.value = d.value | (1 << i);
}

最佳答案

不,没有更好的方法......

除非你想用传统的 Java 方式,即

d = setBit(d, i);

public int setBit(int d, int i) {
return d | (1 << i);
}

这就是说在 Java 中“修改函数的参数”几乎本质上是不干净的。干净的方法是找到一些替代方法来修改参数。

(有时这是不可避免的,在这种情况下,您的变通方法就是可行的方法。也就是说,如果您想编写一个方法 modify(myData),通常最好添加一个modify() 方法到 myData 的类。)

关于java - 在java中修改函数内部参数的干净方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11302045/

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