Idiom for Iterable with size() - 介于 Iterable 和 Collection 之间



Collection是一个有大小的Iterable,你可以检查包含,添加或删除元素。我有继承Iterable并具有大小的对象,但没有继承集合的其他功能。我不想实现带有"不支持"异常的 Collection 方法。

IterableCollection之间是否有一些常用的中间类,我可以让我的对象扩展?类似"大小可迭代"的东西?或者,更一般地说,一个合适的成语?

注意:是的,它确实无法检查会员资格,但有大小。

为什么不创建自己的接口扩展Iterable?这样,您就可以定义要添加到自定义对象的功能。

也许是这样的东西

public interface SizedIterable<T> extends Iterable<T> {
    int size();
}

简短的回答是否定的。

长答案:这个接口需要吗? 你打算用它来做什么? 除非你有许多不同的类具有这个相同(相当不寻常的)属性,以及一些依赖于它的方法,否则我想不出对这个接口有任何明显的需求。

您是否计划将此对象传递给标准库函数/类?这些方法真的会调用 size() 吗?

如果是这样,你可能只需要实现 Collection,然后根据需要对 add()/remove()/contains()/etc 进行无操作。

如果没有,并且您确实需要此接口,则扩展 Iterable 是一个很好的方法。

例如

public interface SizedIterable<T> extends Iterable<T> {
    public int size();
}

相关内容

最新更新