2012-03-10 32 views

Trả lời

7

new String() là một chuỗi rỗng. Đây có thể là một giá trị trả về từ một phương thức, ví dụ, nếu bạn không có gì thú vị hơn để trả về. Sử dụng chữ số "" có lẽ tốt hơn vì giá trị chuỗi rỗng trống sẽ được thực hiện.

4

Đây là một chuỗi trống, tương đương với "". Từ javadoc:

Khởi tạo đối tượng Chuỗi mới được tạo để biểu thị chuỗi ký tự trống. Lưu ý rằng việc sử dụng hàm tạo này là không cần thiết vì các chuỗi là không thay đổi.

EDIT:

lựa chọn nghèo sử dụng của từ tương đương. Để làm rõ tất cả những điều sau đây được true:

"" == "" 
"" != new String() 
"".equals(new String()) 
+0

"tương đương" ... nhưng "giống hệt"? 'new String() ==" "'? –

+0

@pst 'Chuỗi mới() ==" "' sẽ là sai. Họ không đại diện cho cùng một đối tượng như đối tượng String không đến từ các hồ bơi thực tập. – Jivings

3

Kể từ chuỗi là không thay đổi trong Java, tại sao tôi muốn sử dụng đối số ít Chuỗi nhà xây dựng và tạo ra một đối tượng?

Lý do duy nhất là nếu bạn muốn để tạo ra một chuỗi đó là equal để "" nhưng không giống với nó. Và thậm chí sau đó, có nhiều khả năng bạn sẽ gọi số new String(str) trong đó str được tham chiếu đến một chuỗi trống.

Lý do thực sự mà hàm tạo được cung cấp ở tất cả là không hoàn toàn rõ ràng. Tuy nhiên nó không gây hại, và có thể đã có một số lý do để có nó ngay từ đầu (trước khi Java được gọi là Java).

+0

Thú vị thực tế: .NET không có hình thức này (không có-arg String constructor) –

+0

@pst - chỉ thú vị nếu bạn nghĩ rằng đây là một câu hỏi thú vị. Quan điểm của tôi là sự hiện diện (hay không) của một phương thức/constructor chủ yếu vô dụng là không thích hợp từ một quan điểm thực tế. –

+0

@StephenC: Tôi thấy các phương thức hoặc công cụ xây dựng vô dụng làm sao lãng. Khi tôi thấy một API mới, tôi muốn nó càng đơn giản càng tốt. Các phương thức vô dụng làm cho tôi đọc thêm tài liệu và tôi phải quyết định * không * để sử dụng chúng. –

Các vấn đề liên quan