java实体类如果不重写toString方法,会如何?
先认识一下Object
Object 类的 toString 方法
返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
2. 对象如果没有父类,默认继承Object。
如果没重写toString方法,则默认是Object的toString方法返回值:类名@哈希玛值;
package com.huojg.test; import java.io.Serializable; /*
* 为什么实体类要重写toString方法
* 测试。实验开始。。。。
*
*
*
* **/
public class Test5{
private String name;
private String sex;
private int No; public void Show(){
System.out.println("这是我的展示方法!!!!");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getNo() {
return No;
}
public void setNo(int no) {
this.No = no;
}
}
测试类
package com.huojg.test; public class Test6 {
public static void main(String[] args) {
Class<?> demo= null;
try {
demo=Class.forName("com.huojg.test.Test5");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Test5 test5= new Test5();
test5.setName("xiaoming");
test5.setNo(001);
test5.setSex("man");
System.out.println(test5);
}
}
结果输出:
com.huojg.test.Test5@304e94a4
Test5添加toString方法
package com.huojg.test; import java.io.Serializable; /*
* 为什么实体类要重写toString方法
* 测试。实验开始。。。。
*
*
*
* **/
public class Test5{
private String name;
private String sex;
private int No; public void Show(){
System.out.println("这是我的展示方法!!!!");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getNo() {
return No;
}
public void setNo(int no) {
this.No = no;
}
@Override
public String toString() {
return "Test5 [name=" + name + ", sex=" + sex + ", No=" + No + "]";
} }
再次测试输出结果
Test5 [name=xiaoming, sex=man, No=1]
总结分析:
在类Test5中如果我们没有重写ToString方法。默认就是Object的toString方法输出格式。
如果我们在Test5中重写toString方法,那么输出格式就会按照我们定义的方式输出这个对象,因此可以这样理解:
重写toString是对对象打印输出的一种格式化。当你print一个对象是你需要这个对象在打印时展现的是什么形态你就把toString重写成你需要的返回形态。重写hashcode主要是为了规定对象之间的比较方式。如果你把对象存入hash集合,集合就会对对象的hashcode进行比较以区分两个对象是否是同一对象。
java实体类如果不重写toString方法,会如何?的更多相关文章
- hibernate里的实体类中不能重写toString
@Test报堆栈溢出, 在main中报错toString
- [非技术参考]C#重写ToString方法
C# 中的每个类或结构都隐式继承 Object 类. 因此,C# 中的每个对象都会获得 ToString 方法,此方法返回该对象的字符串表示形式. 例如,所有 int 类型的变量都有一个 ToStri ...
- 【java基础】为什么重写toString()方法?
不得不说,有很多java初学者写java实体类的时候,并没有真正理解重写toString() 方法,可能是口头知道也可能是跟风随带添加toString() 方法,并没有真正理解其意义,如果真要被问起来 ...
- Effective Java 第三版——12. 始终重写 toString 方法
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...
- java 中重写toString()方法
toString()方法 一般出现在System.out.println(类名.toString()); toString()是一种自我描述方法 本身返回的是 getClass().getName() ...
- java重写toString方法
在输出对象属性时,重写toString按照你希望的输出形式重写 object类里的toString只是把字符串的直接打印,数字的要转化成字符再打印,而对象,则直接打印该对象的hash码.所以当你要想按 ...
- java继承 、方法重写、重写toString方法
1.Java的继承,关键词Extends package cn.mwf.oo; public class TextExtends { public static void main(String[] ...
- java重写toString()方法
toString()方法是Object类的方法,调用toString()会返回对象的描述信息. 1)为什么重写toString()方法呢? 如果不重写,直接调用Object类的toString()方法 ...
- 在java中为啥要重写toString 方法?
在java中为啥要重写toString 方法?下面以一个简单的例子来说明. 先定义一个test5类.并写它的get,set方法. package test5; public class Test5 { ...
随机推荐
- sourceinsight----tabsiplus颜色配置文件
参考: http://blog.csdn.net/orbit/article/details/7585607 下面是我的颜色配置 http://files.cnblogs.com/pengdongli ...
- Xcode 5 单元测试(一)使用XCTest进行单元测试
在Objc.io #1的Testing View Controllers中讲解的就是单元测试的相关内容.本文说下如何通过Xcode 5中集成的XCTest框架进行简单的单元测试. 什么是单元测试 首先 ...
- 【Mybatis】mybatis查询报错org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'areaName' in 'class java.lang.String'
mybatis查询报错: Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for pro ...
- win7 32位安装 mong0db
http://blog.csdn.net/u013457382/article/details/50775268
- mysql关于访问权限以及root密码修改
root密码修改:mysql> use mysql;mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = ' ...
- HDU4911:Inversion
Problem Description bobo has a sequence a1,a2,-,an. He is allowed to swap two adjacent numbers for n ...
- Spring中如何配置事务
学过SSH的都知道,整合了SSH之后,SSH的经典增删改查案例业务逻辑层的代码就十分简单.基本上都是一句话的事. public void addUser(Webuserlogin user) { // ...
- 接口测试工具(Postman)
给大家介绍一款HTTP接口测试工具 -- Postman ! 优点: 1. 支持参数名与参数值自定义,无论head还是body 2. 支持多种方法调用,包含get与post 3. 支持鉴权加密,包含b ...
- charles抓https包
Charles是一款非常好用的抓包工具,有Window,Linux,Mac OS三个版本,个人觉得比shark和TCPDump好用多了. 闲话不多说,公司将服务从http转到https,导致今天因为抓 ...
- Vue mixins extend
const mixins = { created () { console.log('mixins created') } } const mixins2 = { created () { conso ...