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包含的方法好多呀,下去以后需要多加练习才行。

标签

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1