0

我有这个对象,它是超类的一个实例。我想知道该对象到底是哪个子类,以便我可以决定如何处理它。有这个 getClass() 方法,但它显然不用于比较问题。如何获取对象的子类型?

4

2 回答 2

1

Class c = (你的超类名).getClass();

if(c.getName == "你的子类名") 采取行动

于 2010-03-11T19:28:08.553 回答
1

如果您尝试这样做,则可能存在设计缺陷,但是instanceof.

public class MainClass {
  public static void main(String[] a) {

    String s = "Hello";
    if (s instanceof java.lang.String) {
      System.out.println("is a String");
    }
  }

}

请参阅当心 instanceof 运算符

于 2010-03-11T19:28:54.043 回答