Collection
是一个有大小的Iterable
,你可以检查包含,添加或删除元素。我有继承Iterable
并具有大小的对象,但没有继承集合的其他功能。我不想实现带有"不支持"异常的 Collection
方法。
在Iterable
和Collection
之间是否有一些常用的中间类,我可以让我的对象扩展?类似"大小可迭代"的东西?或者,更一般地说,一个合适的成语?
注意:是的,它确实无法检查会员资格,但有大小。
为什么不创建自己的接口扩展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();
}