实体类中重写toString()方法便于输出显示和监控调试,实体tostring
分享于 点击 10227 次 点评:122
实体类中重写toString()方法便于输出显示和监控调试,实体tostring
实体类UserInf:
package net.lc4ever.ldap.ad.test.testToString;
public class UserInf {
private String uid;
private String uname;
private String uNickname;
private String sex;
//-----以下3种重写的toString()方法无固定格式,你可以按照自己喜好改写---------
//-------------① inherited methods ↓-----------------------
//@Override
// public String toString() {
// return "UserInf [getClass()=" + getClass() + ", hashCode()="
// + hashCode() + ", toString()=" + super.toString() + "]";
// }
//------------② Fields ↓--------------
@Override
public String toString() {
// return "UserInf [uid=" + uid + ", uname=" + uname + ", uNickname="
// + uNickname + ", sex=" + sex + "]";
return "uid=" + uid + ", uname=" + uname + ", uNickname="+ uNickname;
}
//-----------------③ Methods ↓----------------------
// @Override
// public String toString() {
// return "UserInf [getUid()=" + getUid() + ", getUname()=" + getUname()
// + ", getuNickname()=" + getuNickname() + ", getSex()="
// + getSex() + "]";
// }
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getuNickname() {
return uNickname;
}
public void setuNickname(String uNickname) {
this.uNickname = uNickname;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
测试方法:
public static void main(String[] args) {
UserInf user = new UserInf();
user.setUid("11111");
user.setSex("人妖");
user.setUname("泰国农夫");
Map<String,Object> m = new HashMap<String,Object>();
m.put("movie", "拳皇");
m.put("user", user);
System.out.println("user:"+user+" ,user的类型:"+user.getClass().getName());
}
测试结果:
当实体类UserInf没写toString()方法时,Map m里面的值是这样的(打断点调试):
实体类显示的是:实体类路径@内存生成的一个值。
最后System.out.println输出的是:
user:net.lc4ever.ldap.ad.test.testToString.UserInf@1e933c07 ,user的类型:net.lc4ever.ldap.ad.test.testToString.UserInf
当重写toString()方法时,Map m里面的值是这样的:
看着奇怪,m显示貌似很混乱,其实就是两个key_value对,
最后System.out.println输出的是:
user:uid=11111, uname=泰国农夫, uNickname=null ,user的类型:net.lc4ever.ldap.ad.test.testToString.UserInf
这时注意了,user是按toString()的方式输出的,但它还是UserInf类。
这就是写与没写toString()方法的区别:
1、在大量代码调试的时候它的作用就凸显了,可以很方便的查看这个实体类含带的属性的值,无需一层层翻看实体类的属性找值了。有些复杂的实体变量很难在调试的时候找到它含带的值,这时候toString()就显得很有用,容易监控实体类属性值变动和走向。
2、在输出显示实体类的易查看。实体类可以像String一样方便的输出显示。
相关文章
- 暂无相关文章
用户点评