在超类和子类之间进行等效测试,而无需实例化子类

时间:2018-12-22 11:22:44

标签: java

只是在使用Java基础知识时,我想到了是否可以在不实例化它们的情况下检查两个.class对象之间的继承。

例如,如果我有一个Foo类,它是Baa的子类: Foo a = new Foo(); return a instanceof Baa将返回true。

但是,如果我想对Foo.class和Baa.class进行等效测试,该怎么办? 我想我可以做这样的事情: Foo.class.newInstance() instanceof Baa.class 但是可以在不实例化Foo的情况下进行测试吗?

1 个答案:

答案 0 :(得分:0)

您可以使用Class.isAssignableFrom(Class)来检查继承中的层次结构。根据java-docs:

  

确定此Class对象表示的类或接口是否与指定的Class参数表示的类或接口相同,或者是该类或接口的超类或超接口。

这不会实例化任何类,您将获得所需的功能。