我需要使用this method,并在查看源代码后,我注意到StringBuilder
初始化,这与我不相似(我始终使用StringBuilder
的无参数构造函数,即new StringBuilder()
)。在Java中StringBuilder初始化
在该方法中:
StringBuilder sb = new StringBuilder(items.size() << 3);
从JavaDoc的:
java.lang.StringBuilder.StringBuilder(INT容量)
构造一个字符串生成其中不带字符和容量参数指定的初始容量为 。
为什么这里需要一点转变?
源代码:
/** Creates a backslash escaped string, joining all the items. */
public static String join(List<?> items, char separator) {
StringBuilder sb = new StringBuilder(items.size() << 3);
boolean first=true;
for (Object o : items) {
String item = o.toString();
if (first) {
first = false;
} else {
sb.append(separator);
}
for (int i=0; i<item.length(); i++) {
char ch = item.charAt(i);
if (ch=='\\' || ch == separator) {
sb.append('\\');
}
sb.append(ch);
}
}
return sb.toString();
}
“你不应该在乎一个类的实现细节,您使用的是”真的吗?你在开玩笑吗? – JohnJohnGa
SOLID;封装。如果您根据有关X类内部工作的特定知识编写代码,那么在X类被修改后,您的代码很可能无法正常工作。 –
看着众所周知图书馆的实施细节也可以帮助你提高你的编程技巧 – JohnJohnGa