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

2022-01-19 00:00:00 boolean java

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

I am trying to convert boolean to string type...

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

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

以上哪一项会更有效?

推荐答案

我认为它们之间不会有任何显着的性能差异,但我更喜欢第一种方式.

I don't think there would be any significant performance difference between them, but I would prefer the 1st way.

如果你有一个 Boolean 引用,如果你的引用是 nullBoolean.toString(boolean) 将抛出 NullPointerException代码>.因为引用在传递给方法之前被拆箱为 boolean.

If you have a Boolean reference, Boolean.toString(boolean) will throw NullPointerException if your reference is null. As the reference is unboxed to boolean before being passed to the method.

虽然,String.valueOf() 方法如源代码所示,显式 null 检查:

While, String.valueOf() method as the source code shows, does the explicit null check:

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


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


For primitive boolean, there is no difference.

相关文章