覆盖toString()方法的坑
来源:互联网 发布:音质增强软件 编辑:程序博客网 时间:2024/06/05 21:18
这个问题其实在《Java编程思想》里面已经讲到了,标题叫无意识的递归,不过很多人不重视这本书所以不知道罢了。
在我们覆盖toString()方法的时候,如果我们想打印出对象的内存地址,我们可能会想使用this关键字,就像这样:
@Override public String toString() { return "toString" + this; }
这时,如果运行程序调用这个方法的话,你将得到一个大大的java.lang.StackOverflowError(以后面试再有问怎么让程序StackOverflow的,直接上这段代码),因为这里发生了类型转换,编译器将this对象转换为字符串,于是就出现了递归调用。书中给的建议是,如果真的想打印对象的内存地址,请调用super.toString();
阅读全文
0 0
- 覆盖toString()方法的坑
- java反射覆盖toString()方法
- ToStringBuilder和ToStringStyle(覆盖每个实体的 toString 方法)
- ToStringBuilder和ToStringStyle(覆盖每个实体的 toString 方法)
- 覆盖Object类的equals、hashCode和toString方法
- ToStringBuilder和ToStringStyle(覆盖每个实体的 toString 方法)
- Effective Java Item10-总是覆盖toString方法
- 使用Java反射机制覆盖toString()方法
- Effective Java 对于所用对象都通用的方法 10.始终要覆盖toString,玩转toString
- 10. 【对于所有对象都通用的方法】尽量覆盖toString方法
- 在覆盖toString()方法中使用this所发现的有趣的现象
- Code Fragment-对于简单的数据类,通过覆盖toString方法,打印关键信息。
- Enum的toString方法
- ToString()方法的介绍
- Object的toString()方法
- ArrayList的toString()方法
- StringBuilder的toString方法
- StringBuilder的toString方法
- [android]std::map 链接器错误 ndk r8c 与 APP_STL: = gnustl_static
- HTML标签marquee实现滚动效果
- HTML之文字过多以省略号代替
- 创建正态分布的点并用k均值算法聚类
- 在myeclipse中 如何移动多行代码,前后移动
- 覆盖toString()方法的坑
- mysql timestamp/current_timestamp设置注意事项
- Netty之Jboss Marshalling编解码
- Python-PyCharm项目删除
- 常见的几种编程思想
- 打开Eclipse时:Workspace in use or cannot be created, choose a different one.–错误解决办法
- 算法第七节:模拟算法解决“猜数值游戏”问题
- 详解CSS中:nth-child的用法
- jQuery选择器设置表格