为什么在返回值之前将字符串与空值连接起来?

Why concatenate strings with an empty value before returning the value?

我在某些 java 库中看到 return 字符串值与空值连接。

例如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;

为什么不 return 只有 separatorChar?

字符串是 return 值的首选数据类型吗?反正这只是一个字符,为什么要使用字符串数据类型?

执行此转换对性能有影响吗?

一个是String,另一个是char。始终处理 String 而不是必须检查它是否是 char.

很有用

这是将字符转换为字符串的几种方法之一。尽管这曾经是从 char 转换为 String 的较慢方法之一,但随着 java 6 update 20,随着 -XX:+OptimizeStringConcat 标志的引入,串联是将任何值转换为字符串的最快方法.自 Java 7 起,此选项默认打开。所以你是对的。有性能影响。这是一个非常棒的 post 讨论这个问题:.