看到了一个帖子,说的是instanceof的用法,使我对instanceof的理解更加深刻。具体的帖子回复是这样的:
Java解惑关于这方面的一段话:
Type2.java:3: inconvertible types
found : Type2, required: java.lang.String
System.out.println(new Type2() instanceof String);
^
该程序编译失败是因为instanceof 操作符有这样的要求:如果两个操作数的类型都是类,其中一个必须是另一个的子类型[JLS 15.20.2, 15.16, 5.5]。Type2和String 彼此都不是对方的子类型,所以instanceof 测试将导致编译期错误。
这个错误有助于让你警惕instanceof 测试,它们可能并没有去做你希望它们做的事情。