DESKTOP-7803S27_20200828-吴远亮
问题
这是之前一直没弄明白的问题,为什么之前输出一个对象的引用变量时,经常会出现不同的结果?
@Override
public String toString()
return "Birds[type=" + type + "]";
}
Birds b = null ;
System.out.println( b );// b == null ? "null" : b.toString()
b = new Birds( "老鹰" ); ;
System.out.println( b );
println方法代码
public void println(Object x) {
String s = String.valueOf(x);
synchronized (this) {
print(s);
newLine();
}
}
valueOf方法代码
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
解决方法
今天经过老师的讲解,我才知道原来在 println 中调用了 valueOf ,而在 valueOf 使用了条件运算符( obj == null ) ? " null " : obj.toString()来选择输出的内容
但是我觉得这个问题的解决不是重点,重要的是我知道了按住 Ctrl键 然后用 鼠标去点击 方法名,这样就能够查看该方法的源代码。这样非常有利于帮助我们理解代码
吐槽
String包含的方法好多呀,下去以后需要多加练习才行。
点赞