推土机地图 DTO 映射

Dozer Map DTO Mapping

我有点"Object":

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>>>);

但是在 "Map" 我卡住了,因为我不能在它们后面添加 .class 并且在这种状态下它不起作用...

我建议尽可能简化您的地图:

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:

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);
    }
}

考虑您要对数据结构使用的操作,并想出合适的 class。您的嵌套地图看起来不正常。