我知道如果我不得不问这个问题,我的设计程序设计很差。如何确保对象是子类类型而不是子类的父类?
例如:
if (r instanceof subclassRobot) {
//method
}
如果r
是父母,我不希望执行此操作。如果r
是子类类型,我只希望执行此方法。
答案 0 :(得分:4)
您可以像这样检查班级:
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.
}
答案 1 :(得分:0)
r.getClass().equals(subClass.class)
答案 2 :(得分:0)
绝对精美的代码。
您的p是对属于基类族的类族的引用。 O操作。
if (r instanceof subclassRobot) {
//...
}
可以检查您是否实际指向subclassRobot