java 打印对象时时如何调用对象toString()方法的
2017-03-11 01:31
465 查看
我们知道输出一个对象,实质上就是调用对象的toString() 方法,既
System.out.println(obj); // 调用obj.toString()具体jdk是如何实现的呢 请跟我一步一步探个究竟:
找到System.out.println()的源码:
public void print(Object obj) {
write(String.valueOf(obj));
}
调用了String.valueOf(); 继续查看源码:
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
关键部分看到了,如果对象不为空,就取对象的toString方法。
(因为object是所有对象的祖宗,且有toString方法,所以所有对象都有toString方法,并且可以重写该方法)
System.out.println(obj); // 调用obj.toString()具体jdk是如何实现的呢 请跟我一步一步探个究竟:
找到System.out.println()的源码:
public void print(Object obj) {
write(String.valueOf(obj));
}
调用了String.valueOf(); 继续查看源码:
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
关键部分看到了,如果对象不为空,就取对象的toString方法。
(因为object是所有对象的祖宗,且有toString方法,所以所有对象都有toString方法,并且可以重写该方法)
相关文章推荐
- java在调用System.out.println()打印一个新new的对象时,为什么会调用toString方法?
- 原!! java直接打印一个对象时,并不是直接调用该类的toString方法 ,而是会先判断是否为null,非null才会调用toString方法
- java在调用System.out.println()打印一个新new的对象时,为什么会调用toString方法?
- Java中的syso方法是如何调用toString()方法的
- Java中,如何调用“其他类的方法中生成的实例化的对象”的属性?
- java打印对象和toString方法
- System.out.println(s) 打印值为对象引用时,调用toString()方法。
- Java - 如何通过反射调用对象的方法?
- 一个对象toString()方法如果没有被重写,那么默认调用它的父类Object的toString()方法,而Object的toString()方法是打印该对象的hashCode,一般hashCode就是此对象的内存地址
- JavaDay08--Homework(定义接口和类并调用属性和方法+对象的多态性+打印对象+判定对象相等)
- Java的打印对象和toString方法
- Java 打印自定义类 实例 , 自动调用toString 方法的原因
- System.out.println(s) 打印值为对象引用时,调用toString()方法。
- Java 打印对象和toString 方法
- 当使用System,out.println()打印一个对象是自动调用toString方法
- 如何防止覆盖(override)toString方法时产生递归调用
- 如何应用Java的链式方法调用 推荐
- JAVA如何在任意方法中打印当前线程栈信息(StackTrace)
- DWR中调用Java对象的方法,不要使用简单数据类型
- 如何在java中调用js方法