class A {
public static void main(String...args) {
Integer var = 10;
if(var instanceof Character) // Line1
System.out.println("var is a Character");
}
}
Tôi biết Dòng 1 sẽ không biên dịch vì trình biên dịch đã phát hiện rằng var
không phải là Character
.instanceof trong Java - tại sao nó không biên dịch?
Điều tôi không hiểu là lý do trình biên dịch gửi lỗi thay vì trả lại false
hoặc true
.
Nếu trình biên dịch trả false
hoặc true
(nghĩa là đối xử với các hoạt động instanceof
giống như một thường xuyên xác nhận nếu dựa trên), sau đó nó được nhiều hơn nữa hữu ích .. sẽ nó không?
Hoặc tôi có thiếu điều gì đó hiển nhiên không?
Thay đổi 'Integer var = 10;' to 'Object var = 10;'. Trình biên dịch cho bạn biết rằng 'var' có thể ** không bao giờ ** là' instanceof Character' nếu bạn khai báo nó là một 'Integer'. –
Tại sao điều này lại được giảm giá? Đó là một câu hỏi khá hợp lý. –
@RohitJain Suy nghĩ của tôi chính xác. –