我有各种类的接口,所有这些都应该实现迭代器,所以我有类似的东西
public interface A extends Iterable<A> { ...otherMethods()... }
然而,对于具体的类,这意味着我必须使用
public class B implements A { public Iterator<A> iterator() {...} }
当我更喜欢(或至少,我认为我更喜欢)使用public Iterator<B> iterator() {...}
时,以便类的具体使用可以具有显式类型(以防我希望接口中没有的方法可用,或者一些这样的. 也许这永远不应该出现?或者如果它出现了它的糟糕设计?
另一方面是使用 Iterator 接口
public interface A extends Iterator<A> { ...otherMethods()... }
具体类编译得很好
public class B implements A { public B next() {...} }
是什么赋予了?