gpt4 book ai didi

java - 将原始值作为参数而不是引用传递给新方法后更新原始值

转载 作者:行者123 更新时间:2023-12-02 00:58:59 26 4
gpt4 key购买 nike

我有一个方法,其某些部分是重复的。我设法以原始方法多次使用较小方法的方式拆分代码。问题是,当我将一些值作为参数传递给那些新的较小方法并使用它们时,原始值不会更新。我所做的操作是:值递增或从数组列表中删除项目。如何使用较小的方法(而不仅仅是引用)更新原始值?我想出的唯一可能的解决方案是创建一个新类,在其中我可以为这些值设置 setter 并更新它们。但是有更简单/直接的方法来解决它吗?

部分主要方法:

int numberOfBlocks = 0;
int currentBlock = 0;
int currentTime = 0;

ArrayList<Request> queue = new ArrayList<Request>();

if(queue.size != 0) {
updateStatus(queue, currentBlock, numberOfBlocks);
}

if(something else happens) {
removeFinished(queue, currentBlock);
}

较小的方法:

private void updateStatus(ArrayList<Request> queue, int currentBlock, int numberOfBlocks) {
if (queue.get(0).getBlock() > currentBlock)
currentBlock++;
else
currentBlock--;

numberOfBlocks++;
}

private void removeFinished(ArrayList<Request> queue, int currentBlock){
if (queue.get(0).getBlock() == currentBlock) {
queue.remove(0);
}
}

最佳答案

首先,如果您传递一个参数以便在方法中更改它,您的方法应该返回更改后的值,这将解决您的问题。如果需要更改多个值,那么您是对的,基元将传递 y 值,并且调用方法不会看到被调用方法中所做的更改。因此,您应该像您想要的那样,使用 setter 和 getter 将这些值封装在包装类中。仅此一点就能解决您的问题。但由于该类已被修改,因此您的方法返回该类也是有意义的。这只是一个很好的阶梯

关于java - 将原始值作为参数而不是引用传递给新方法后更新原始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60952585/

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