【JavaSE】解读Java中的toString方法

前言:

在Java中,toString 方法来自**java.lang.Object** 类,然后所有对象都继承该**Object 类** 。默认情况下,它的作用是返回对象的字符串表示形式。在实际开发 中,重写**toString()**方法可以帮助我们以更易读的形式输出对象信息,尤其在调试和日志记录时尤为有用。


一、看源码:

1.方法来源:java.lang底下的Object类

2.方法定义和注释:

注释意思:

返回对象的字符串表示形式。一般来说,toString方法返回一个"文本表示"此对象的字符串。结果应该是一个简洁但信息丰富的表示,便于阅读。

建议所有子类重写此方法。

Object类的toString方法返回一个字符串,该字符串由对象作为实例的类的名称、@字符、以及哈希码的无符号十六进制表示对象。

换句话说,此方法返回一个等于以下值的字符串:

getClass().getName()+'@'+整数.toHexString(hashCode())

源码解析

getClass():调用该方法获取对象的运行时类。

getName():获取类的完全限定名(包括包名)。

hashCode() :调用 hashCode() 方法,返回对象的哈希码。

Integer.toHexString():将哈希码转换为无符号十六进制字符串。

默认的 toString() 实现虽然能唯一标识对象 ,但通常并不能提供有用的信息。建议所有子类重写 toString() 方法,以提高输出的可读性。

3.小编解读:

该方法放在Object里,就是为了所有类都有一个口子,可以自定义toString方法,有一个优雅易读的返回结果


二、如何重写toString方法

现在有一个学生类。使用默认的toString方法时:

重写方法:

@Override非必要,但建议加上,多一层校验机制。

建议使用Idea自动生成toString方法,再在上面做修改。

相关推荐
Rysxt_4 分钟前
Spring Boot SPI 教程
java·数据库·sql
海边夕阳20064 分钟前
主流定时任务框架对比:Spring Task/Quartz/XXL-Job怎么选?
java·后端·spring·xxl-job·定时任务·job
4***V20211 分钟前
Vue3响应式原理详解
开发语言·javascript·ecmascript
q***985213 分钟前
VS Code 中如何运行Java SpringBoot的项目
java·开发语言·spring boot
帧栈23 分钟前
开发避坑指南(72):HttpHeaders 的add()方法和set()方法有什么区别?
java·spring·http
共享家952725 分钟前
QT-界面优化(中)
开发语言·qt
李日灐32 分钟前
手搓简单 string 库:了解C++ 字符串底层
开发语言·c++
unclecss37 分钟前
把 Spring Boot 的启动时间从 3 秒打到 30 毫秒,内存砍掉 80%,让 Java 在 Serverless 时代横着走
java·jvm·spring boot·serverless·graalvm
say_fall41 分钟前
C语言编程实战:每日一题 - day7
c语言·开发语言
tuokuac42 分钟前
@PathVariable与@RequestParam
java·spring