次のコードはコンパイルして「いいえ」を出力すると思いました
class One{
public static void main(String[] args) {
One o = new One();
if(o instanceof Two) {
System.out.println("Yes");
} else {
System.out.println("No");
}
}
}
class Two { }
しかし、オブジェクトが継承階層にあるかどうかをオペレーターがチェックして、そうでない場合は返すinconvertible types
必要がないことを示すコンパイラエラーがスロー されますinstanceof
true
false
編集:
特定の条件が真になることは決してないことを既に知っているコンパイラの場合であり、コンパイラエラーをスローする場合、なぜこのコードはコンパイルされているのですか
if(false) {
System.out.println("Yes");
}