如何使用 Modelmapper 从另一个对象更新对象字段
How to update object fields from another object using Modelmapper
我打算编写一个方法来更新一个 MyObject
对象,其中包含另一个 MyObject
对象的非空字段。
private void updateMyObject(MyObject sourceObject, MyObject destinationObject) {
ModelMapper mapper = new ModelMapper();
mapper.getConfiguration().setPropertyCondition(Conditions.isNotNull());
mapper.map(sourceObject, destinationObject);
}
public class MyObject {
long id;
long durationInMilliSecounds;
//...getters and setters
}
这里 destinationObject
没有更新。任何人都可以建议此代码的问题。
您似乎缺少一些代码。也许错误出在该代码中。我猜你的模型没有同时具有 getter 和 setter,这是 ModelMapper 所要求的。
以下代码按预期工作:
public class modelMapperTest {
public static void main(String[] args) {
ModelMapper mapper = new ModelMapper();
mapper.getConfiguration().setPropertyCondition(Conditions.isNotNull());
MyModel sor = new MyModel(null, 5);
MyModel des = new MyModel("yyy", 0);
System.out.println(des);
mapper.map(sor, des);
System.out.println(des);
}
和
public class MyModel {
private String s;
private int i;
public String getS() {
return s;
}
public void setS(String s) {
this.s = s;
}
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
public MyModel(String s, int i) {
super();
this.s = s;
this.i = i;
}
@Override
public String toString() {
return "MyModel [s=" + s + ", i=" + i + "]";
}
}
打印:
我的模型 [s=yyy, i=0]
我的模型 [s=yyy, i=5]
我以前用过 ModelMapper
版本 0.6.5
并升级到 1.1.0
问题已解决
我打算编写一个方法来更新一个 MyObject
对象,其中包含另一个 MyObject
对象的非空字段。
private void updateMyObject(MyObject sourceObject, MyObject destinationObject) {
ModelMapper mapper = new ModelMapper();
mapper.getConfiguration().setPropertyCondition(Conditions.isNotNull());
mapper.map(sourceObject, destinationObject);
}
public class MyObject {
long id;
long durationInMilliSecounds;
//...getters and setters
}
这里 destinationObject
没有更新。任何人都可以建议此代码的问题。
您似乎缺少一些代码。也许错误出在该代码中。我猜你的模型没有同时具有 getter 和 setter,这是 ModelMapper 所要求的。
以下代码按预期工作:
public class modelMapperTest {
public static void main(String[] args) {
ModelMapper mapper = new ModelMapper();
mapper.getConfiguration().setPropertyCondition(Conditions.isNotNull());
MyModel sor = new MyModel(null, 5);
MyModel des = new MyModel("yyy", 0);
System.out.println(des);
mapper.map(sor, des);
System.out.println(des);
}
和
public class MyModel {
private String s;
private int i;
public String getS() {
return s;
}
public void setS(String s) {
this.s = s;
}
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
public MyModel(String s, int i) {
super();
this.s = s;
this.i = i;
}
@Override
public String toString() {
return "MyModel [s=" + s + ", i=" + i + "]";
}
}
打印:
我的模型 [s=yyy, i=0]
我的模型 [s=yyy, i=5]
我以前用过 ModelMapper
版本 0.6.5
并升级到 1.1.0
问题已解决