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