我有一些参数Class<? extends JsonAPIDataObject> responseClass
,当我尝试使用if(responseClass instanceof ThisClass)
ThisClass
实现JsonAPIDataObject
时,它会不断说出不兼容的类型?
编辑:
MyClass.class.isAssignableFrom(responseClass.getClass())
MyClass.class.isInstance(responseClass.getClass())
两个都不行,我试过没有.getClass()。
答案 0 :(得分:4)
x instanceof Y
仅在x
的编译时类型与Y
兼容时才编译。例如,下面的代码没有编译,因为没有String
是Number
。
String str = "Foo";
System.out.println(str instanceof Number);
在您的情况下,responseClass
是Class
,而不是ThisClass
所以
responseClass instanceof Class
编译,并提供true
,而
responseClass instanceof ThisClass
没有编译。您应该使用isInstance
。