问题描述
我正在尝试将布尔值转换为字符串类型...
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 引用,如果你的引用是 null,Boolean.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.