本文介绍了Java中的instanceof - 为什么不编译?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
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
不是字符
。
I know Line 1 will not compile because the compiler has found that var
is not a Character
.
我无法理解为什么编译器会抛出错误而不是返回 false
或 true
。
What I fail to understand is why the compiler throws an error instead of returning false
or true
.
如果编译器返回 false
或 true
(即像处理基于if的常规验证一样处理 instanceof
操作,然后它会更有用..它不会吗?
If the compiler returns false
or true
(i.e treating the instanceof
operation like a regular if-based validation), then it be much more useful.. would it not?
或者我错过了一些明显的东西?
Or am I missing something obvious?
推荐答案
根据:
RelationalExpression 是 instanceof
的第一个操作数, ReferenceType 是第二个。
RelationalExpression is the first operand of instanceof
and ReferenceType is the second.
这篇关于Java中的instanceof - 为什么不编译?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!