gpt4 book ai didi

java - 为什么 AbstractCollection 没有实现 size()?

转载 作者:搜寻专家 更新时间:2023-10-31 08:11:25 24 4
gpt4 key购买 nike

当对 AbstractCollection 进行子类化时,我仍然必须实现 size(),即使(我相信)有一个合理的正确的(尽管性能不佳)默认实现:

public int size() {
int count = 0;

for (Iterator<E> i = iterator(); i.hasNext();) {
i.next();
count++
}

return count;
}

为什么设计者不包含 size() 的默认实现?他们是否试图迫使开发人员有意识地考虑这种方法,希望让开发人员提供比默认执行更好的实现?

最佳答案

我怀疑你的最后一句话是真正的原因。当对抽象类进行子类化时,有时很想只重写抽象方法。我希望几乎每个实现都有一个比迭代更好的实现 - 所以如果你希望几乎每个人都覆盖一个方法,最好不要提供基本(缓慢)实现。它只是减少了搞砸的机会:)

关于java - 为什么 AbstractCollection 没有实现 size()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6676512/

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