我有一点“对象”:
Map<Integer, Map<WeekDay, Map<String, Data>>> obj
我希望将其映射到:
Map<Integer, Map<WeekDay, Map<String, DataDto>>> returnObj
我怎么能做到这一点?
我想用的方式就是这个:
map(schedule, Map<Integer.class, Map<WeekDay.class, Map<String.class, DataDto.class>>>);
但是在“地图”我被卡住了,因为我不能在他们后面添加.class而且在这种状态下它不起作用...
答案 0 :(得分:2)
如果可能,我建议您简化地图:
class A {
WeekDay weekDay;
String str;
Data obj;
}
Map<Integer, A> map = ...;
Iterables.transform(map.values(), new Function<Data, DataDto>() {
@Override
public Object apply(String input) {
return ...;
}
});
或者你可以把它放在你的班级里面:
class Dictionary {
Map<Integer, Map<WeekDay, Map<String, Data>>> obj;
getDataDto(Integer key, Weekday weekDay, String str) {
final Data data = obj.get(key).get(weekDay).get(str);
return (new Function<Data, DataDto>() {
...
}).apply(data);
}
}
考虑一下您将对数据结构使用的操作,并提出正确的类。您的嵌套地图看起来不行。