为啥在返回值之前将字符串与空值连接?
Posted
技术标签:
【中文标题】为啥在返回值之前将字符串与空值连接?【英文标题】:Why concatenate strings with an empty value before returning the value?为什么在返回值之前将字符串与空值连接? 【发布时间】:2019-12-21 10:05:21 【问题描述】:我在一些 java 库中看到返回字符串时,该值与空值连接。
例如package java.io;
/**
* The system-dependent default name-separator character, represented as a
* string for convenience. This string contains a single character, namely
* <code>@link #separatorChar</code>.
*/
public static final String separator = "" + separatorChar;
为什么不只返回separatorChar?
字符串是返回值的首选数据类型吗?既然这只是一个字符,为什么要使用字符串数据类型?
进行此转换是否会对性能产生影响?
【问题讨论】:
这是一种滥用连接运算符将任意类型转换为String
的方法。在这种情况下为char
。为什么他们不只使用Character.toString
我不知道。
@BoristheSpider 或String.valueOf(char)
.
【参考方案1】:
一个是String
,另一个是char
。始终与String
打交道很有用,而不必检查它是否是char
。
【讨论】:
【参考方案2】:这是将 char 转换为 String 的几种方法之一。虽然这曾经是从 char 转换为 String 的较慢方法之一,但从 java 6 update 20 开始,随着 -XX:+OptimizeStringConcat 标志的引入,连接是将任何值转换为字符串的最快方法。从 Java 7 开始,此选项默认打开。所以你是对的。存在性能影响。这是一篇非常棒的帖子,讨论了这个问题:https://***.com/a/44485322/1028560。
【讨论】:
以上是关于为啥在返回值之前将字符串与空值连接?的主要内容,如果未能解决你的问题,请参考以下文章