class A {
public static void main(String...args) {
Integer var = 10;
if(var instanceof Character) // Line1
System.out.println("var is a Character");
}
}
我知道1號線不能編譯,因爲編譯器發現,var
不是Character
。Java中的instanceof - 爲什麼不編譯?
我不明白爲什麼編譯器會拋出一個錯誤,而不是返回false
或true
。
如果編譯器返回false
或true
(即將instanceof
操作看作是常規的基於if的驗證),那麼它會更有用。
或者我錯過了明顯的東西?
將'Integer var = 10;'更改爲'Object var = 10;'。編譯器告訴你,如果你聲明它是一個Integer,那麼'var'可以**從不**成爲'instanceof Character'。 –
爲什麼這會降低投票率?這是一個很合理的問題。 –
@RohitJain我的想法。 –