最好将对象转换为字符串“ .toString()”.或与 " concat concat或“ string.v



我想将我的布尔对象转换为字符串。以下哪项是更好/正确的方法,为什么?

boolean booleanValue = true;
String strValue = Boolean.toString(booleanValue);

boolean booleanValue = true;
String strValue = booleanValue + "";

编辑

以下答案提示我添加更多

boolean booleanValue = true;
String strValue = String.valueOf(booleanValue);

以及诸如Integer

之类的非主要数据类型
Integer i = 10;
String strValue = i.toString();

因此,最后,我们有三种不同类型的Boolean.toString(),与+String.valueOf() Concat将任何数据类型转换为String

使用String.valueOf(booleanValue)Boolean.toString(booleanValue),因为它们既简洁又清楚地传达您要做的事情。避免将字符串与+ ""串联,因为它稍慢(尽管可以忽略(,并且不会传达其他两个选项。

前者可以更快地执行,而后者的屏幕空间更少。

顺便说一句,在您程序的用户界面中,普通人类永远不应该看到True/false单词,因此第三种方法是(booleanValue ? "yes" : "no"),将其转换为适当的语言。或开/关或启用/禁用或可见/隐藏等等。

在您提到的两个选项中,请选择第一个用于生产使用的选项。

仅使用第二个选项进行调试。例如,您要应用打印语句,以显示任何特定方法的输出。

除了上述两个选项外,您可以选择String.valueOf(boolean_obj)方法。优势是,如果布尔对象已分配为null,它将被分配为null字符串,就像在使用Boolean.toString(boolean_obj)时一样,它将抛出NullPointerException

给出以下示例:

// One
String value = Integer.toString(someValue);
// Two
String value = someValue + "";
// let me add Three 
String value = String.valueOf(someValue);

我会建议使用string.valueof((。原因是此调用不明确包含参数类型,因此,如果以后将其从int更改为doubleboolean,则无需修改代码。

第二个我会提出解决方案,因为隐式创建一个字符串构造器并附加组件。

我猜想与#3相比的#1速度更快,所以我呆在3中。