为什么我打印出对象的结果是:com.slef.model.User@68999068,结果完全对应不上啊
原因:没有重写对象的toString()方法
System.out.println(user);
println方法中:
public void println(Object x) {
String s = String.valueOf(x);
synchronized (this) {
print(s);
newLine();
}
调用了String.valueOf(x)方法,而valueOf()方法中:
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
调用了相应对象的toString()方法,如果你没有重写user对象toString的方法,默认使用父类object的toString的方法:
public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }
解决方法:
在相应的对象定义类中重写toString()方法
package com.slef.model;
public class User {
private Long id;
private String age;
private String name;
public Long getId() {
return id;
}
public User setId(Long id) {
this.id = id;
return this;
}
public String getAge() {
return age;
}
public User setAge(String age) {
this.age = age;
return this;
}
public String getName() {
return name;
}
public User setName(String name) {
this.name = name;
return this;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", age='" + age + '\'' +
", name='" + name + '\'' +
'}';
}
}