0

我有一堂课,比如:

public class Class0 implements Class1{

    static class Class2 extends Class3 {
        ...
    }

}

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

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

class Class0$Class2

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

4

2 回答 2

2

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

于 2013-01-10T18:50:27.313 回答
1

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

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

于 2013-01-10T18:50:18.910 回答