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