//(a)
public <T extends Iterator<E> & Iterable<E>> T iterX(){
}
//(b)
public class ValueIterx implements Iterator<E>,Iterable<E>{
//... ...
public void Iterator<T> iterator() {
return this; //(1)
// return new XXXX() //(2)
}
}
(a) 方法,除了返回null,其他都是不可以的。
(b) 方法,存在潜在问题,尽量别用注意。
原因没看到官方解释,狗到一些:
1.兼容1.4,否则Iterator无法编译。
2.潜在问题:
(1)写法,有问题,返回一个可变的this。
(2)写法,没问题,返回别的对象或自己的快照。
本文探讨了Java中迭代器(Iterator)与Iterable接口的实现方式,指出特定的实现可能存在潜在问题,并提供了两种实现示例。一种是直接返回自身作为迭代器,另一种则是返回一个新的迭代器对象。
5511

被折叠的 条评论
为什么被折叠?



