实体类中重写toString()方法便于输出显示和监控调试
来源:互联网 发布:天津市软件学院 编辑:程序博客网 时间:2024/05/29 04:35
实体类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 ↓--------------@Overridepublic 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一样方便的输出显示。
1 0
- 实体类中重写toString()方法便于输出显示和监控调试
- 实体类自动重写toString(),equals()和hashCode()方法
- 重写Java实体类toString方法
- java实体类重写toString方法,得到想要字符串
- java实体类如果不重写toString方法,会如何?
- Android中重写toString()方法解决列表显示问题(为什么要重写toString?)
- Java类中重写toString方法
- java 中重写toString()方法
- java 中重写toString()方法
- 重写equals和 toString方法
- 重写toString和equal方法
- 关于C#类中重写ToString方法和PHP类中__tostring()方法的比较
- 重写toString方法输出对象信息
- java实体类toString方法
- lombok快速入门:实体类中再也不用写setter和getter,toString等方法了
- Java:object类 中常用equals()和 toString()方法的重写
- Java中为什么要重写ToString方法
- java equals() 和toString()方法重写
- java学习之:网络socket
- 剑指offer 最大连续子数组之和
- CodeForces 554C 组合数学
- 统计学习方法(4)——贝叶斯分类算法
- php实现远程网络文件下载到服务器指定目录(方法一)
- 实体类中重写toString()方法便于输出显示和监控调试
- 浙大数据结构课后题-最大子列和
- 在spring配置文件中引入properties文件--引出加载配置文件的对应方式
- 6.Unity3D商业游戏源码研究-变身吧主公-SceneLogin
- 找出数组中的最大和第二大元素需要进行几次比较?
- Attempt to invoke interface method 'boolean java.util.List.add(java.lang.Object)' on a null
- 华为nexus 6p,联想900等 android手机加载webview 显示空白解决方案
- Hibernate持久化类与主键生成策略
- arguments.callee与递归