我有一个A级的私人会员,如下。
class A {
String type;
}
上面的类将作为列表对象列表。现在我有另一个B级
Class B {
String type1;
String type2;
String type3;
String type4;
String type5;
String type6;
String type7;
String type8;
}
所以现在我如何迭代List并逐个获取(类型)数据然后将其作为单个对象放入B类,如第一个将转到Type1,第二个---> type2,third one ---> type3 .....,等等。 注意:A类中只有8种类型作为列表。所以我们将在B类中有8种类型,并且我已经考虑过反思,所以请告诉我如何使用它,如果这是唯一的选择。
答案 0 :(得分:0)
如果您可以将B级更改为:
class B
{
String[] types;
}
然后我们可以这样做:
int i = 0;
for(A aObject:aList){
bObject.types[i] = aObject.type;
}
否则我们可以添加如下所有类型:
bObject.type1 = aList.get(0).type;
bObject.type2 = aList.get(1).type;
等等。
答案 1 :(得分:0)
Jasper支持Map
,因此我建议您将值存储在SortedMap
中,例如TreeMap
,而不是带有公共变量的类。
然后你会添加你的类型名称:
Map<String, String> b = new TreeMap<>();
b.put("type1", "Foo");
b.put("type2", "Bar");
b.put("type3", "Baz");
...
或者如果您从A:
列表中填充List<A> list = ...;
Map<String, String> b = new TreeMap<>();
for (int i = 0; i < list.size(); i++) {
b.put("type" + (i + 1), list.get(i).type;
}
要迭代地图中的所有名称,您可以使用:
for (Map.Entry<String, String> entry: b.entrySet()) {
String key = entry.key();
String value = entry.value();
System.out.println(key + " = " + value);
}