【发布时间】:2020-03-31 14:08:17
【问题描述】:
我有一个方法,它的某些部分是重复的。我设法以原始方法多次使用较小方法的方式拆分代码。问题是,当我将一些值作为参数传递给那些新的较小方法并使用它们时,原始值不会得到更新。我所做的操作是:值递增或从 arraylist 中删除项目。如何使用较小的方法更新原始值,而不仅仅是引用?我想出的唯一可能的解决方案是创建一个新类,我可以在其中为这些值设置一个设置器并更新它们。但是有没有更简单/直接的方法来解决它?
部分main方法:
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);
}
}
【问题讨论】: