Tôi muốn thực hiện một số hành động CHỈ NẾU chuỗi của tôi có một giá trị có ý nghĩa. Vì vậy, tôi đã thử điều này.
if (!myString.equals("")) {
doSomething
}
và điều này
if (!myString.equals(null)) {
doSomething
}
và điều này
if ( (!myString.equals("")) && (!myString.equals(null))) {
doSomething
}
và điều này
if ( (!myString.equals("")) && (myString!=null)) {
doSomething
}
và điều này
if ( myString.length()>0) {
doSomething
}
Và trong tất cả các trường hợp, chương trình của tôi doSomethingbất chấp thực tế là chuỗi của tôi là EMPTY. Nó bằng null. Vì vậy, điều gì là sai với điều đó?
THÊM:
Tôi tìm thấy lý do của vấn đề. Biến được khai báo là một chuỗi và do đó, nullđược gán cho biến này đã được chuyển thành "null"! Vì vậy, if (!myString.equals("null"))làm việc.
System.out.println(myString)ngay lập tức trước khối if để bạn có thể thấy những gì ở đó không?
null"?
nullgán cho biến này đã được chuyển thành "null"- đây là một ý tưởng khủng khiếp. Cố gắng thay đổi thiết kế này nếu có thể.
nullkhông có bất kỳ phương pháp nào, vì vậy cũng khôngequals(). NếumyStringlànull, làm thế nào bạn sẽ gọi một phương thức trên nó? :)