我在类下面有一个类:
public class Class0 implements Class1{
static class Class2 extends Class3 {
...
}
}
在另一个类中,我想使用obj instanceof Class2
验证我的对象是否是Class2的实例。
所以当我打印我的对象的类时,我得到了:
class Class0$Class2
我的问题是,在这种情况下如何使用instanceof
?因为当我尝试Class0.??!
时,我没有获得Class0.Class2
答案 0 :(得分:2)
使用instanceof Class0.Class2
。但要确保该类是可见的。您使用包可见性声明了该类。
名称Class0$Class2
是编译代码中类的名称。通常你不会参考它。
答案 1 :(得分:1)
我认为如果您想确保某个对象属于特定类,则需要使用Object.getClass()
方法,而不是instanceof
运算符。
因为如果给定对象是给定类的实例,则运算符将简单地返回true,并且对于对象层次结构中的所有父类和接口都是如此。