【发布时间】:2016-06-12 08:30:25
【问题描述】:
我正在比较两个对象,但预期对象不等于实际对象。但它们具有相同的值。请提供一些帮助。
为什么?
public testJsonToObject() {
Hello expected = new Hello();
String json = "{\"id\":5,\"name\":\"Family\",\"deleteable\
":\"false\"}";
Hello actual = (Hello) mapper.readValue(json, Hello.class);
System.out.println("Family " + actual);
expected.setId(5);
expected.setName("Family");
expected.setDeleteable(false);
System.out.println(expected);
Assert.assertEqual(expected, actual);
}
简单的Pojo
Class Hello
public class Hello {
private int id;
private String name;
private boolean deleteable;
/* Getter and Setters*/
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isDeleteable() {
return deleteable;
}
public void setDeleteable(boolean deleteable) {
this.deleteable = deleteable;
}
}
为什么这没有给我预期的结果OK?
【问题讨论】:
-
您正在比较对象引用而不是值。
-
您依赖于继承自
Object类的equals实现。您需要自己覆盖它。 -
请改进上面的代码,@Nfear。谢谢你。因为我希望这两个对象在 mapper.readValue(json,Hello.class); 之后是相同的;
标签: java json mongo-jackson-mapper