在 Java 中,将对象作为方法参数传递并在该方法中修改该对象并继续跟踪该对象值是否是一种不良行为?

Is it a bad behavior in Java to pass an object as a method argument and modify that object in that method and keep tracking that object values?

提问人:lightrek 提问时间:11/14/2022 最后编辑:πάντα ῥεῖlightrek 更新时间:11/14/2022 访问量:62

问:

例如,我想对 进行递归调用,并希望该方法在调用期间修改:getChildParint[] par

因此,在 main 方法中,我定义了:

int[] par = new int[m * n];

然后在 main 方法中调用:

int childPar = getChildPar(par, childIdx);

getChildPar 定义为:

int getChildPar(int[] par, int childIdx) {
    if(par[childIdx] == childIdx) {
        return childIdx;
    }

    return par[childIdx] = getChildPar(par, par[childIdx]);
}

所以不断修改方法内部。我知道这种方法实现在C++中很常见,但不确定它是否被认为是Java中的不良行为?getChildParint[] par

Java 递归 引用传递

评论

0赞 Turing85 11/14/2022
你知道为什么它在 C/C++ 中很常见吗?
0赞 lightrek 11/14/2022
将对象传入并修改它,我看到公司里有很多代码是这样写的
0赞 Turing85 11/14/2022
再说一遍:你知道为什么这种编程在 C 中很常见吗(至少 C++ 不是那么多,在 C++ 中还有其他方法可以做到这一点)?
0赞 Old Dog Programmer 11/14/2022
题外话:大概是一种方法。getChildParstatic
0赞 lightrek 11/14/2022
@Turing85 谢谢。我认为这种方式在修改对象和方法调用时很方便。其他选择可能是什么?创建成员变量?

答: 暂无答案