我有一段代码试图在其中处理数组的内容

loopArrayValuesToRemove(mVal.getValues());


在这里,我试图删除值数组的内容

private Values[] loopArrayValuesToRemove(Values[] values) {

    List<Values> files = new ArrayList<>(Arrays.asList(values.clone()));
    Iterator<Values> iterator = files.iterator();
    while(iterator.hasNext()) {
        Values mVal = iterator.next();
        if(!mVal.isCheckedLocally()){
            iterator.remove();
        }
        // other operations
    }
    Values[] mvals = files.toArray(new Values[files.size()]);

    return mvals;
}



由于即使操作Values[],我仍在创建新对象,
mVal.getValues()内容未修改。
这是一个愚蠢的问题,但我对此感到困惑。因为我不能改变
服务器(mVal.getValues())上对arrayList的响应

最佳答案

您将不得不将其编写为

mVal.setValues(loopArrayValuesToRemove(mVal.getValues()));


由于Java按值传递引用,因此您无法在方法内部更改数组本身。内容可以更改,但是如果大小更改无法完成。

关于java - 处理数组的内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46013028/

10-09 04:52