class A {
public static void main(String...args) {
Integer var = 10;
if(var instanceof Character) // Line1
System.out.println("var is a Character");
}
}
wiem Linia 1 nie będzie kompilować, ponieważ kompilator stwierdził, że var
nie jest Character
.instanceof w Javie - dlaczego to się nie kompiluje?
Nie mogę zrozumieć, dlaczego kompilator zgłasza błąd zamiast zwracać false
lub true
.
Jeśli kompilator zwraca false
lub true
(tj leczenia operację instanceof
jak regularnego sprawdzania, czy opartym na), to jest o wiele bardziej przydatne .. czy nie?
A może brakuje mi czegoś oczywistego?
Zmień "Liczba całkowita zmienna = 10;" na "Obiekt zmienna = 10;". Kompilator mówi ci, że 'var' może ** nigdy ** nie być' instanceof Character' jeśli zadeklarujesz go jako 'Integer'. –
Dlaczego jest on odrzucany? To dość uzasadnione pytanie. –
@RohitJain Moje myśli dokładnie. –