只是在使用Java基础知识时,我想到了是否可以在不实例化它们的情况下检查两个.class对象之间的继承。
例如,如果我有一个Foo类,它是Baa的子类:
Foo a = new Foo(); return a instanceof Baa
将返回true。
但是,如果我想对Foo.class和Baa.class进行等效测试,该怎么办?
我想我可以做这样的事情:
Foo.class.newInstance() instanceof Baa.class
但是可以在不实例化Foo的情况下进行测试吗?
答案 0 :(得分:0)
您可以使用Class.isAssignableFrom(Class)来检查继承中的层次结构。根据java-docs:
确定此Class对象表示的类或接口是否与指定的Class参数表示的类或接口相同,或者是该类或接口的超类或超接口。
这不会实例化任何类,您将获得所需的功能。