1

ACollectionIterable具有大小的,您可以检查其包含情况,并添加或删除元素。我有继承Iterable并具有大小的对象,但没有集合的其他功能。我不想Collection使用“不支持”异常来实现该方法。

是否有一些常用的中间类IterableCollection我可以让我的对象扩展?像“SizedIterable”这样的东西?或者,更一般地说,一个合适的成语?

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

4

2 回答 2

4

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

可能是这样的

public interface SizedIterable<T> extends Iterable<T> {
    int size();
}
于 2012-10-03T18:39:29.470 回答
1

简短的回答是否定的。

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

您是否打算将此对象传递给标准库函数/类?这些方法实际上会调用 size() 吗?

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

如果没有,并且您确实需要这个接口,那么扩展 Iterable 是一个好方法。

例如

public interface SizedIterable<T> extends Iterable<T> {
    public int size();
}
于 2012-10-03T18:55:28.067 回答