假设我有这个:
public class Unit<MobileSuit, Pilot> {
...
List<MobileSuit> mobileSuits;
List<Pilot> pilots;
...
}
Run Code Online (Sandbox Code Playgroud)
我想以最简单的方式在该类之外迭代这对中的每一对.我应该怎么做呢?我想过这样做:
public class Unit<MobileSuit, Pilot> {
...
Iterator<MobileSuit> iteratinMechas;
Iterator<Pilot> iteratinPeople;
class IteratorCustom<MobileSuit, Pilot> implements Iterator {
public boolean hasNext() {
return iteratinMechas.hasNext() && iteratinPeople.hasNext();
}
public void remove() {
iteratinMechas.remove();
iteratinPeople.remove();
}
public Object next() {
// /!\
}
}
public Iterator iterator() {
return new IteratorCustom<MobileSuit, Pilot>(mobileSuits, pilots);
}
}
Run Code Online (Sandbox Code Playgroud)
沿着那条线的东西.
无论如何,问题是我不能真正从next()返回一个对象,而且我也不能让Iterator占用多个类型.那么,有什么想法吗?
另外,我不能组建一个新的课程来结合MobileSuit和Pilot.我需要将它们分开,即使我一次迭代它们.原因是可能有没有飞行员的移动套装,我不知道如何通过将它们保持在同一级别来解决这个问题.这个类需要在其他地方进行处理,所以我必须统一一个接口和其他很多东西.基本上,假设MobileSuit和Pilot需要分开.