【发布时间】:2016-07-31 11:07:47
【问题描述】:
如果我尝试对错误的类使用 instanceof 运算符,则会收到编译错误(“Animal 无法转换为 String”),但使用接口时我不会收到编译时错误。
例如:在第 10 行,我收到一个编译错误,因为 Animal 不是 String 的子类。但是在第 14 行,即使 Animal 没有实现 List 接口,我也没有收到编译错误。
class Animal {
}
public class InstanceOf {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Animal a = new Animal();
if (a instanceof String ){ //line 10
System.out.println("True");
}
if (a instanceof List ){ //line 14
System.out.println("True");
}
}
}
【问题讨论】:
-
请在问题中包含确切的错误信息。
-
考虑一下:
class B extends Animal implements List。现在这个:Animal a = new B(); -
@Tunaki 你也有“Dupehammer®”——你为什么不关闭它? (可能:你和我一样犹豫不决......:-/)
-
@Marco13 不,昨天只是没有投票:)
标签: java instanceof