我有一个类的可迭代:Iterable<ClassA> classAIterable
。我有这样的第二堂课:
public class ClassB {
private final ClassA classA;
public ClassB(ClassA a) {
this.classA = a;
}
}
我想将ClassA
中的每个classAIterable
对象转换为包含ClassB
对象的ClassA
对象,并将它们放入ClassB
的可迭代对象中1}}。
我该怎么做?谢谢!
答案 0 :(得分:1)
您可以使用StreamSupport.stream
访问Iterable
,将Stream
转换为Spliterator
。在Stream
中,您可以将元素从ClassA
映射到ClassB
,然后将其收集到List
,即Iterable
。
Iterable<ClassB> iterB = StreamSupport.stream(iterable.spliterator(), false)
.map(ClassB::new)
.collect(Collectors.toList());
答案 1 :(得分:0)
当然,它可能不适合您的情况,但作为解决方案的变体:
1)你可以创建界面:
interface interfaceC {
}
2)并在ClassA
和ClassB
:
class ClassA implements interfaceC {
}
class ClassB implements interfaceC {
}
3)然后使用interfaceC
class classIterable implements Iterable<interfaceC> {
private List<interfaceC> internalList = null;
}
可能为你工作