我正在使用java.text.breakIterator
迭代单词(这不是迭代器,是的,我注意到了,无需告诉我)。为什么我不能把它作为一个实际的迭代器?即为什么我不能这样做:
Iterator<String> iter = BreakIteratorMagicWrapper.getWordIterator(sourceString);
while(iter.hasNext()) {
System.out.println("got word %s", iter.next());
}
我正在使用java.text.breakIterator
迭代单词(这不是迭代器,是的,我注意到了,无需告诉我)。为什么我不能把它作为一个实际的迭代器?即为什么我不能这样做:
Iterator<String> iter = BreakIteratorMagicWrapper.getWordIterator(sourceString);
while(iter.hasNext()) {
System.out.println("got word %s", iter.next());
}
为什么我不能把它作为一个实际的迭代器?
因为BreakIterator
既不实现Iterator<Foo>
也不实现Iterable<Foo>
。
但是,没有什么能阻止您编写自己的Iterator
或Iterable
由 a 支持的实现BreakIterator
。无论好坏,它都不是标准库的一部分。