tôi cần phải sử dụng this method, và sau khi xem xét mã nguồn, tôi nhận thấy một khởi StringBuilder
mà không phải là familar với tôi (tôi luôn luôn sử dụng các nhà xây dựng không tham số từ StringBuilder
, ví dụ: new StringBuilder()
).StringBuilder khởi trong Java
Trong phương pháp này:
StringBuilder sb = new StringBuilder(items.size() << 3);
Từ javadoc:
java.lang.StringBuilder.StringBuilder (int suất)
Constructs một người thợ xây chuỗi không có ký tự trong đó và dung lượng ban đầu là được chỉ định bởi đối số công suất.
Tại sao cần thay đổi chút ở đây?
Source code:
/** 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();
}
"bạn không nên quan tâm đến chi tiết triển khai của lớp mà bạn đang sử dụng" Thật không? đây co phải la một tro đua? – JohnJohnGa
RẮN; đóng gói. Nếu bạn viết mã của bạn về kiến thức cụ thể về các hoạt động bên trong của một lớp X, có khả năng cao mã của bạn không hoạt động đúng sau khi lớp X đã được sửa đổi. –
xem chi tiết triển khai của thư viện nổi tiếng cũng có thể giúp bạn cải thiện kỹ năng mã hóa của mình – JohnJohnGa