代码之家  ›  专栏  ›  技术社区  ›  aioobe

println(字符串s)与println(对象o)

  •  3
  • aioobe  · 技术社区  · 14 年前

    在我看来 PrintStream.print(Object x) PrintStream.println(Object x) PrintStream.print(String x) PrintStream.println(String x) .

    有什么明显的理由两者兼有吗?他们有什么不同吗?API文档可读性?效率?

    (对于自动装箱,我怀疑即使是将原语作为参数的print方法也是多余的。。。但是,这些方法早于自动装箱功能,因此这是可以解释的。)

    2 回复  |  直到 14 年前
        1
  •  10
  •   Bozho    14 年前

    他们没有 同样的道理:

    print(Object x) 电话 String.valueOf(x) ,返回:

    (obj == null) ? "null" : obj.toString();
    

    所以我们有一个额外的 toString() 方法。

    结果 是一样的,因为 String.toString() this . 但是为了API的易用性,不应该强迫用户理解这些细节。

        2
  •  2
  •   Dheeraj Joshi    14 年前
    PrintStream.print(Object x)
    

    打印由生成的字符串

    String.valueOf(Object)
    

    但是

    如果需要,打印字符序列 null