为什么不按照它听起来的方式工作?

Ada*_*dam 2 java variables types reference

在Java中,instanceof运算符只会false在比较时返回null.如果测试的引用变量不是所需类型,则程序无法编译.此运算符是否仅有效地测试引用是否null存在?还是有其他用途我没想到的?

如果没有,为什么不称它isNull或更具描述性的东西?

eri*_*son 5

我不确定你是如何得出结论的,但是当第一个操作数的运行时类型与第二个操作数指定的类型不匹配时,instanceof操作将导致false.

例如,

Object t1 = "Hello, World!";
System.out.println(t1 instanceof Number);
Run Code Online (Sandbox Code Playgroud)

...打印"false",因为t1是a String,而不是Number其子类或其中一个.

你能否列举一个instanceof无法编译的操作示例?最有可能的原因是语法错误.