Hãy để tôi đầu tiên khởi động của với một mẫu mã ...Java - Kiểu mã hóa: Khuyết điểm và ưu điểm của so sánh chuỗi kiểu "ABC" ("SOMESTRING") là gì?
String password = "";
if("PIRATE".equals(password)) {
// Do something
}
Xem ở đây, các Chuỗi không đổi hoặc đen (bất kỳ) "Pirate" được sử dụng để kiểm tra sự bình đẳng giữa hai Strings. Trong khi đó ...
String password = "";
if(password.equals("PIRATE")) {
// Do something
}
điều này cũng hoạt động chính xác như mã trước đó.
Hiện tại, tôi thấy rất nhiều kiểu đầu tiên "STRING_LITERAL" .equals (STRING_OBJECT), trong khi người Java đăng mã.
Vì vậy, câu hỏi của tôi là, Kiểu này đến từ đâu? và Có tốt hơn kiểu thứ hai theo bất kỳ cách nào không?
Thực tế tôi tìm thấy kiểu thứ hai hợp lý hơn so với kiểu đầu tiên, tại sao?!
cho phép hãy yêu cầu như thế nào, nếu người dùng cung cấp mật khẩu bằng với "Pirate", sau đó cung cấp cho phép người dùng
khi bạn bắt đầu thực hiện các yêu cầu trên,
String userProvidedPassword = getPaswordFromUser();
if(userProvidedPassword.equals("PIRATE")) {
// Allow him
}
Điều này không hợp lý hơn "PIRATE" .equals (userProvidedPassword);?! Chỉ cần suy nghĩ về nó ...
Đúng tôi nếu tôi sai .. Cảm ơn ..
EDIT: Xin lỗi, this question đã không đến trong tìm kiếm trước đây của tôi, và nó trả lời câu hỏi của tôi hoàn hảo. Cũng nhờ tất cả những người đã giúp đỡ ở đây ..
Bạn tránh kiểm tra không rõ ràng. Điều này làm cho mã ngắn gọn hơn. –
Với điều này: 'userProvidedPassword.equals (" PIRATE ")' bạn cần một kiểm tra null bổ sung: 'userProvidedPassword! = Null && userProvidedPassword.equals (" PIRATE ")' – NINCOMPOOP