Collection是一个有大小的Iterable,允许您检查其包含情况,以及添加或删除元素。我有继承Iterable的对象,并且有一个大小,但没有集合的其他功能。我不想实现带有“不支持的”异常的Collection方法。
在Iterable和Collection之间有没有一些常用的中间类,我可以让我的对象扩展?像'SizedIterable‘这样的东西?或者,更广泛地说,是一种合适的习语?
注意:是的,它确实不能检查成员,但有一个大小。
发布于 2012-10-04 02:39:29
为什么不创建自己的接口来扩展Iterable呢?这样,您就可以定义要添加到自定义对象中的功能。
可能是这样的东西
public interface SizedIterable<T> extends Iterable<T> {
int size();
}发布于 2012-10-04 02:55:28
简短的回答是否定的。
冗长的答案:有必要使用这个接口吗?你打算用它做什么?除非您有许多具有相同(相当不寻常)属性的不同类,以及一些依赖于它的方法,否则我想不出对此接口有任何明显的需求。
您是否计划将此对象传递给标准库函数/类?这些方法真的要调用size()吗?
如果是这样的话,您可能只需要实现集合,然后根据需要为add()/remove()/contains()/etc设置无操作。
如果不是这样,并且您确实需要这个接口,那么扩展Iterable是一个很好的方法。
例如:
public interface SizedIterable<T> extends Iterable<T> {
public int size();
}https://stackoverflow.com/questions/12714709
复制相似问题