Effective Java —— 始終要覆蓋toString方法
阿新 • • 發佈:2019-01-25
提供好的toString實現可以使類用起來更加舒適
如下有一個使用者資訊類:
package com.blog.effective.note10;
/**
* 〈使用者資訊〉<br>
*
* @author 未緒
* @time 2018/1/12 14:30
*/
public class UserInfo {
private String userName;
private String userSex;
public UserInfo(String userName,String userSex){
this.userName=userName;
this .userSex=userSex;
}
}
首先我們不重寫他的toString()
方法,測試程式碼以及結果如下:
package com.blog.effective.note10;
public class MethodToString {
public static void main(String[] args) {
UserInfo userInfo=new UserInfo("張三","男");
System.out.println(userInfo);
}
}
測試結果
com.blog.effective.note 10.UserInfo@2503dbd3
是不是一點都看不懂這個輸出是個什麼鬼?
接下來我們來重寫UserInfo
類的toString()
方法,在重寫之前我們需要注意一點:toString()
方法應該包含物件中所有值得關注的資訊
一般編譯器會幫我們自動生成toString()
方法
@Override
public String toString() {
return "UserInfo{" +
"userName='" + userName + '\'' +
", userSex='" + userSex + '\'' +
'}';
}
新增完上面的程式碼之後,我們再重新執行測試程式碼,得到的結果就非常的容易看懂了
UserInfo{userName='張三', userSex='男'}