在Java中将布尔对象转换为字符串的最佳方法


问题内容

我正在尝试将布尔值转换为字符串类型…

Boolean b = true;
String str = String.valueOf(b);

要么

Boolean b = true;
String str = Boolean.toString(b);

以上哪一项效率更高?


问题答案:

我认为它们之间不会有明显的性能差异,但是我更喜欢第一种方法。

如果您有Boolean参考,则为Boolean.toString(boolean)时抛出。由于引用在传递给方法之前已取消装箱。NullPointerException``null``boolean

同时,String.valueOf()如源代码所示,method进行显式null检查:

public static String valueOf(Object obj) {
    return (obj == null) ? "null" : obj.toString();
}

只需测试以下代码:

Boolean b = null;

System.out.println(String.valueOf(b));    // Prints null
System.out.println(Boolean.toString(b));  // Throws NPE

对于原始布尔值,没有区别。