Java 深究字符串String类(2)之重写toString()方法无意识递归
来源:互联网 发布:网络歌曲 缘分五月 编辑:程序博客网 时间:2024/04/29 23:08
Java中每个类都是Object的子类,Object 有toString方法,所以标准容器自然都有
如果希望toString方法以打印对象内存地址,可以直接打印
public static void main(String[] args) { Two t = new Two(); System.out.println(t); }
输出:
Two@610455d6
好着呢,,但如果,想在那一串之前打印点什么.
可以重写toString方法
@Overridepublic String toString() { return String.format("adress : %s", this); }public static void main(String[] args) { Two t = new Two(); System.out.println(t);}
这样写好像对着呢
预计输出为:
adress : Two@610455d6
但运行时发现,抛了很多很多异常
原因如下:
return String.format("adress : %s", this); //相当于↓return String.format("adress : %s", this.toString);
然后调用的toString是重载过的,即自身,而至于无限递归.
如果实在想在这打印地址,正确方法如下:
public static void main(String[] args) { Two t = new Two(); System.out.println(t);}@Overridepublic String toString() { return String.format("adress : %s", super.toString());}
去调用父类的toString~
输出:
adress : Two@610455d6
0 0
- Java 深究字符串String类(2)之重写toString()方法无意识递归
- 由Java中toString()方法引发的无意识的递归想到的
- Java 深究字符串String类(3)format()静态方法
- Java 深究字符串String类(1)之运算符"+"重载
- java实体类重写toString方法,得到想要字符串
- Java 重写tostring方法
- Java重写toString方法
- java:toString方法重写
- Java 无意识递归
- Java类中重写toString方法
- 重写Java实体类toString方法
- java 中重写toString()方法
- java 中重写toString()方法
- java中无意识的递归
- 13章字符串--无意识递归 this
- 44 java toString 方法 重写equals 方法
- 重写java类的toString()方法, 安卓开发
- java实体类如果不重写toString方法,会如何?
- 单向散列加密,对称加密,非对称加密
- 洛谷 https://www.luogu.org/problem/show?pid=T574
- 代码规范工具-Checkstyle使用手册
- 一种简单粗暴的数据层网络缓存(二)实现方案
- 11月第二周周报
- Java 深究字符串String类(2)之重写toString()方法无意识递归
- anddroid 图标大小
- 嵌入式linux开发面试题解析——C语言部分
- 自定义下拉刷新上拉加载控件(SwipeRefreshLayout + recyclerView)
- 向SVN提交项目时显示提交成功却没有上传
- Css 设置placdholder字体颜色
- 88. Merge Sorted Array
- 总结38
- MUI- function($, doc)分别表示什么