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.note10.UserInfo@2503dbd3

是不是一点都看不懂这个输出是个什么鬼?

接下来我们来重写UserInfo类的toString()方法,在重写之前我们需要注意一点:toString()方法应该包含对象中所有值得关注的信息
一般编译器会帮我们自动生成toString()方法

    @Override
    public String toString() {
        return "UserInfo{" +
                "userName='" + userName + '\'' +
                ", userSex='" + userSex + '\'' +
                '}';
    }

添加完上面的代码之后,我们再重新运行测试代码,得到的结果就非常的容易看懂了

UserInfo{userName='张三', userSex='男'}

猜你喜欢

转载自blog.csdn.net/zjq_1314520/article/details/79043841
今日推荐