我有一小段代码有问题,需要正确编写。代码如下,
public static void doOperation(ObjectNode object, Set<String> keys) {
object.forEach(x -> {
if (x.isArray()) {
x.forEach(y -> {
ObjectNode on = (ObjectNode) y;
on.remove(keys);
doOperation(on, keys);
});
} else if (x.isObject()) {
ObjectNode on = (ObjectNode) x;
on.remove(keys);
}
});
}
根据规则进行清洁工作,
- 如果这是一个
ObjectNode
,从那里删除键。 - 如果是 Array 节点,从那里获取对象并相应地清理它们 #1
我认为错误在于它不假设一个数组节点也可以包含另一个数组节点,我们需要编写另一个最终返回 ObjectNode 的递归方法。
那是对的吗?