我试图看看Java中的instanceof运算符是如何工作的,并且面临着一个非常奇怪的问题.
public static void main(String[] args) {
Map m = new HashMap();
System.out.println("m instanceof Date: " + (m instanceof Date));
}
Run Code Online (Sandbox Code Playgroud)
以上内容按预期返回false.然而,
public static void main(String[] args) {
HashMap m = new HashMap();
System.out.println("m instanceof Date: " + (m instanceof Date));
}
Run Code Online (Sandbox Code Playgroud)
这甚至都没有编译.我收到一个错误
inconvertible types
found : java.util.HashMap
required : java.util.Date
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?我正在使用IntelliJ Idea 11.
Ada*_*cin 10
从Java语言规范3.0,第15.20.2节:
如果将RelationalExpression转换为ReferenceType将作为编译时错误被拒绝,则关系表达式的实例同样会产生编译时错误.在这种情况下,instanceof表达式的结果永远不会成立.
由于您无法将转换从a编译HashMap为a Date,因此无法instanceof在两者之间编译测试.
| 归档时间: |
|
| 查看次数: |
4015 次 |
| 最近记录: |