1. 程式人生 > >Effective Java —— 始終要覆蓋toString方法

Effective Java —— 始終要覆蓋toString方法

提供好的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='男'}