**始终重写 toString 方法**

虽然 Object 类提供了 toString 方法的实现,但它返回的字符串通常不是你的类的用户想要看到的。它由类名后跟一个「at」符号(@)和哈希码的无符号十六进制表示组成,例如PhoneNumber@163b91 。 toString 的通用约定要求,返回的字符串应该是「一个简洁但内容丰富的表示,对人们来说是很容易阅读的」。虽然可以认为 PhoneNumber@163b91 简洁易读,但相比于 707-867-5309 ,但并不是很丰富 。 toString 通用约定「建议所有的子类重写这个方法」。好的建议,的确如此!虽然它并不像遵守 equals 和 hashCode 约定那样重要 ,但是提供一个良好的 toString实现使你的类更易于使用,并对使用此类的系统更易于调试。当对象被传递到 println、printf、字符串连接操作符或断言,或者由调试器打印时,toString 方法会自动被调用。即使你从不调用对象上的toString,其他人也可以。例如,对对象有引用的组件可能包含在日志错误消息中对象的字符串表示。
如果未能重写 toString,则消息可能是无用的。
如果为 PhoneNumber 提供了一个很好的 toString 方法,那么生成一个有用的诊断消息就像下面
这样简单:

System.out.println("Failed to connect to " + phoneNumber);

始终重写 toString 方法相关推荐

  1. 如何:重写 ToString 方法(C# 编程指南)

    如何:重写 ToString 方法(C# 编程指南) C# 中的每个对象都继承 ToString 方法,此方法返回该对象的字符串表示形式.例如,所有 int 类型的变量都有一个 ToString 方法 ...

  2. java中的tostring_java 中重写toString()方法

    toString()方法 一般出现在System.out.println(类名.toString()); toString()是一种自我描述方法 本身返回的是 getClass().getName() ...

  3. java实体类如果不重写toString方法,会如何?

    先认识一下Object Object 类的 toString 方法 返回一个字符串,该字符串由类名(对象是该类的一个实例).at 标记符"@"和此对象哈希码的无符号十六进制表示组成 ...

  4. [转载] JAVA面向对象之代码块 继承 方法的重写 super关键字与重写toString()方法介绍

    参考链接: 可以重写Java中的私有方法吗 JAVA面向对象之代码块与继承 代码块分类 局部代码块 作用:限制变量生命周期 书写位置:在方法中 构造代码块 开发中很少使用 书写位置:类中  方法外 调 ...

  5. [转载] java重写toString()方法

    参考链接: 在Java中重写toString() 前言: 在你兴高采烈的写完一个类,创建测试类时,创建对象,传入参数,调用对象,以为会得到参数值,但突然发现输出的是" 类名@什么东东?(其实 ...

  6. [非技术参考]C#重写ToString方法

    C# 中的每个类或结构都隐式继承 Object 类. 因此,C# 中的每个对象都会获得 ToString 方法,此方法返回该对象的字符串表示形式. 例如,所有 int 类型的变量都有一个 ToStri ...

  7. 创建一个商品类Product类,在该类中定义3个属性id,name,price和重写toString()方法

    ·创建一个商品类Product类,在该类中定义3个属性id,name,price和重写toString()方法,分别实现setter()和getter()方法,创建一个测试类,调用Product类的构 ...

  8. 封装一个新闻类News,包含新闻标题,新闻作者,新闻内容,新闻类型三个属性,提供必要的访问器和修改器方法重写toString方法,要求打印对象时输出格式为“标题;

    封装一个新闻类News,包含新闻标题,新闻作者,新闻内容, 新闻类型三个属性,提供必要的访问器和修改器方法,重写toString方法, 要求打印对象时输出格式为"标题:类型:作者" ...

  9. Java基础——重写toString()方法

    1.Object()类的toString() Java默认的toString方法来自Object类 在Java中每个类都直接或者间接继承Object类,toString()方法同样是来自于Object ...

最新文章

  1. SpringBoot+thymeleaf实现文件下载(已实践,全流程)
  2. android.os.binderproxy cannot be cast to,Android服务android.os.BinderProxy错误
  3. union 和 struct 的区别与联系
  4. 解决torch.cuda.is_available()为False的问题
  5. Java并发教程–可调用,将来
  6. hive 配置mysql_Hive的mysql安装配置
  7. PyTorch 1.0 中文文档:torch.hub
  8. 知乎回应“腾讯搜狗退出知乎股东”:是上市后的标准操作
  9. 标准模板库(STL) map —— 初始化问题
  10. 电脑一般预装access吗_我作为一名财务人员学Access的经历
  11. FlightGear的IO系统
  12. 大文件上传NeatUpload简单用法nbsp;(…
  13. 如何将网页保存保存为PDF格式?或者打印网页
  14. bmi055六轴传感器获取数据
  15. 林奇社区群主招募!福利福利福利!
  16. 沃森计算机显能耐,微型气象预报有戏
  17. Python软件编程等级考试二级——20220618
  18. 新版盲盒商城V4.0完整系统源码+亲测可用
  19. vue项目vant sku组建满足自定义展示
  20. 软件上线后翻车?教你如何化解!(绝密)

热门文章

  1. 新西兰FSP牌照申请流程?
  2. Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] ...
  3. Base64 和 MD5 加密
  4. CSS精灵图及字体图标
  5. docker简介及使用国内镜像源安装docker
  6. 十三五智慧医疗与健康服务业发展趋势
  7. Android学习之nbsp;Launcher抽屉类Slid…
  8. 爱剪辑怎么制作淘宝视频?详细的制作技巧,教你快速搞定淘宝主图视频
  9. ios开发动物园管理 继承多态的实现
  10. maven java archetype_使用Maven Archetype插件构建Maven工程原型模板的实例