当我在另一个下使用静态类时验证instanceof

时间:2013-01-10 18:48:07

标签: java class inheritance instanceof

我在类下面有一个类:

public class Class0 implements Class1{

    static class Class2 extends Class3 {
        ...
    }

}

在另一个类中,我想使用obj instanceof Class2验证我的对象是否是Class2的实例。

所以当我打印我的对象的类时,我得到了:

class Class0$Class2

我的问题是,在这种情况下如何使用instanceof?因为当我尝试Class0.??!时,我没有获得Class0.Class2

2 个答案:

答案 0 :(得分:2)

使用instanceof Class0.Class2。但要确保该类是可见的。您使用包可见性声明了该类。 名称Class0$Class2是编译代码中类的名称。通常你不会参考它。

答案 1 :(得分:1)

我认为如果您想确保某个对象属于特定类,则需要使用Object.getClass()方法,而不是instanceof运算符。

因为如果给定对象是给定类的实例,则运算符将简单地返回true,并且对于对象层次结构中的所有父类和接口都是如此。