Java,子类而非超类的实例

Java,子类而非超类的实例,java,Java,如果我不得不问这个问题,我知道我的程序可能设计得很糟糕。如何确保对象是子类类型而不是子类的父类 例如: if (r instanceof subclassRobot) { //method } 如果r是父级,我不希望执行此操作。我只希望在r是子类类型时执行此方法。您可以像这样检查类本身: if(thing instanceof SomeClass.class && !thing.getClass().equals(SomeClass.class)) { // Thi

如果我不得不问这个问题,我知道我的程序可能设计得很糟糕。如何确保对象是子类类型而不是子类的父类

例如:

if (r instanceof subclassRobot) {
  //method
}

如果
r
是父级,我不希望执行此操作。我只希望在
r
是子类类型时执行此方法。

您可以像这样检查类本身:

if(thing instanceof SomeClass.class && !thing.getClass().equals(SomeClass.class))
{
    // Thing can be any class that extends SomeClass,
    // but will not belong to SomeClass itself.
}

您可以这样检查类本身:

if(thing instanceof SomeClass.class && !thing.getClass().equals(SomeClass.class))
{
    // Thing can be any class that extends SomeClass,
    // but will not belong to SomeClass itself.
}
绝对好的代码

p是对属于基类族的类族的引用。o

if (r instanceof subclassRobot) {
    //...
}
只需检查您是否实际指向SubassRobot的实例就可以了

p是对属于基类族的类族的引用。o

if (r instanceof subclassRobot) {
    //...
}
检查您是否实际指向
subassrobot