13

ClassA から ClassB へのドーザー マッピングを作成しました。

List<ClassA>今、私は aを aにマップしたいと思いますList<ClassB>

ただすることは可能ですか

mapper.map(variableListClassA, variableListClassB) 

または、ループを通過する必要がありますか。

for (ClassA classA : variableListClassA) {
    variableListClassB.add(mapper.map(classA, ClassB.class))
}
4

2 に答える 2

13

リストのタイプは実行時に消去されるため、ループを使用する必要があります。

両方のリストがクラスのフィールドである場合、所有するクラスをマップできます。

于 2013-01-17T15:59:36.070 に答える
13

ヘルパー クラスを使用して 1 つのステップでそれを行うこともできます

public class DozerHelper {

    public static <T, U> ArrayList<U> map(final Mapper mapper, final List<T> source, final Class<U> destType) {

        final ArrayList<U> dest = new ArrayList<U>();

        for (T element : source) {
        if (element == null) {
            continue;
        }
        dest.add(mapper.map(element, destType));
    }

    // finally remove all null values if any
    List s1 = new ArrayList();
    s1.add(null);
    dest.removeAll(s1);

    return dest;
}
}

上記の呼び出しは次のようになります

List<ClassB> listB = DozerHelper.map(mapper, variableListClassA, ClassB.class);
于 2013-02-19T17:40:26.863 に答える