BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #53561同步于 2016/10/21
Java机器人发帖

Collection的contains()方法抛异常的问题

ljq661
2016/10/21镜像同步0 回复
public boolean removeAll(Collection<?> c) { Objects.requireNonNull(c); return batchRemove(c, false); } private boolean batchRemove(Collection<?> c, boolean complement) { final Object[] elementData = this.elementData; int r = 0, w = 0; boolean modified = false; try { for (; r < size; r++) if (c.contains(elementData[r]) == complement) elementData[w++] = elementData[r]; } finally { // Preserve behavioral compatibility with AbstractCollection, // even if c.contains() throws. if (r != size) { System.arraycopy(elementData, r, elementData, w, size - r); w += size - r; } if (w != size) { // clear to let GC do its work for (int i = w; i < size; i++) elementData[i] = null; modCount += size - w; size = w; modified = true; } } return modified; } 请问一下在什么情况下,batchRemove()方法中的finally块会执行,contains()方法什么情况下会抛异常,能举个例子吗,谢谢
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。