我有一个Iterator<TypeA>
要转换为的Iterator<TypeB>
。TypeA和TypeB不能直接相互转换,但是我可以编写一条规则来转换它们。我该怎么做?我应该扩展并覆盖Iterator<TypeA>
的next,hasNext和remove方法吗?
您无需自己编写。番石榴(以前是Google收藏)已在Iterators.transform(...)中介绍过
您提供了迭代器和一个将TypeA转换为TypeB的函数,就可以完成了。
Iterator<TypeA> iterA = ....;
Iterator<TypeB> iterB = Iterators.transform(iterA, new Function<TypeA, TypeB>() {
@Override
public TypeB apply(TypeA input) {
TypeB output = ...;// rules to create TypeB from TypeA
return output;
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句