Java中每个类都是Object的子类,Object 有toString方法,所以标准容器自然都有
如果希望toString方法以打印对象内存地址,可以直接打印
public static void main(String[] args) {
Two t = new Two();
System.out.println(t);
}
输出:
Two@610455d6
好着呢,,但如果,想在那一串之前打印点什么.
可以重写toString方法
@Override
public 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);
}
@Override
public String toString() {
return String.format("adress : %s", super.toString());
}
去调用父类的toString~
输出:
adress : Two@610455d6