如果我有两个类,分别是SuperTypeSubType,其中SubType扩展了SuperType,是否可以在运行时使用if检测确切的类型?

我不起作用的解决方案如下:

if (t instanceof SubType)
    do SubType stuff
else
    do SuperType stuff

最佳答案

您可以例如使用反射API。

if (SubType.class.isInstance(t)){
    // do SubType stuff
}else{
    // do SuperType stuff
}


此处有更多详细信息:

Class.isInstance(Object)

关于java - 使用if在 super 类型和子类型之间进行选择,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25046122/

10-09 00:39