OK, vậy "giải pháp tốt nhất có thể" có nghĩa là gì?
Nếu bạn có nghĩa là dễ đọc nhất, thì tất cả các giải pháp có thể là tương đương với một lập trình Java có kinh nghiệm. Nhưng IMO dễ đọc nhất là
public boolean compareStringsOrNulls(String str1, String str2) {
// Implement it how you like
}
Nói cách khác, ẩn thực hiện bên trong một phương pháp đơn giản (lý tưởng) có thể được gạch chân.
(Bạn có thể cũng "out-nguồn" đến 3 thư viện tiện ích bên ... nếu bạn đã sử dụng nó trong codebase của bạn.)
Nếu bạn có ý nghĩa performant nhất, sau đó:
- giải pháp performant nhất phụ thuộc vào nền tảng và bối cảnh,
- một trong những vấn đề "bối cảnh" là tương đối (động) tần số xuất hiện của
null
lập luận,
- it có lẽ không quan trọng phiên bản nào nhanh hơn ... vì sự khác biệt có thể quá nhỏ để tạo sự khác biệt cho hiệu suất ứng dụng tổng thể và
- nếu nó quan trọng, cách duy nhất để tìm ra nhanh nhất TRÊN PLATFORM của bạn là thử cả hai phiên bản và đo sự khác biệt.
Nguồn
2012-06-30 05:25:54
bản sao có thể có của [Cách tốt hơn để so sánh các chuỗi có thể là null] (http://stackoverflow.com/questions/8336856/a-better-way-to-compare-strings-which-could-be-null) – jimr