gpt4 book ai didi

java - 当目标具有与源同名的变量时,带有自定义源和目标变量的 @Mapping 无法按预期工作

转载 作者:行者123 更新时间:2023-11-30 10:04:08 24 4
gpt4 key购买 nike

我有下面的 Source 和 Target 类,我正在使用 lombok 来生成 getter 和 setter

public class Target {
private String name;
private String newName;
}

public class Source {
private String name;
}

假设我想将 Source.name 映射到 Target.newName我在下面使用带有 @Mapping 的 Mapper 类来指定源和目标变量。

但是一旦我编译代码并检查生成的 ClassMapperImpl它将 Source.name 映射到 Target.name 而不是 Target.new Name

@Mapper
public interface ClassMapper {

@Mapping(source = "name", target = "newName")
Target sourceToTarget(Source s);
}

最佳答案

我认为当我尝试时它们都被映射了:

public class ClassMapperImpl implements ClassMapper {

@Override
public Target sourceToTarget(Source s) {
if ( s == null ) {
return null;
}

Target target = new Target();

target.setNewName( s.getName() );
target.setName( s.getName() );

return target;
}
}

请在 name 属性上使用忽略。

@Mapper
public interface ClassMapper {

@Mapping(source = "name", target = "newName")
@Mapping(ignore = true, target = "name")
Target sourceToTarget(Source s);
}

关于java - 当目标具有与源同名的变量时,带有自定义源和目标变量的 @Mapping 无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56037811/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com