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 doSomething
bấ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
"?
null
gá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ể.
null
không có bất kỳ phương pháp nào, vì vậy cũng khôngequals()
. NếumyString
lànull
, làm thế nào bạn sẽ gọi một phương thức trên nó? :)