检查类或接口是否实现或扩展特定接口

时间:2015-02-16 05:48:17

标签: java class inheritance interface

我想获得实现或扩展Externalizable接口的所有类或接口。对于我使用的

Externalizable.class.isAssignableFrom(clasz)

但我的目的是只获取实现或扩展Externalizable的类或接口。如果Externalizable不是第一级的超类或超级接口,我不需要clasz。如果有人可以帮我解决问题,那将会很棒。

1 个答案:

答案 0 :(得分:1)

听起来你只想要直接实现Externalizable的类和接口。

Class<?>[] interfaces = clasz.getInterfaces();
for (Class<?> c: interfaces) {
    if (c.equals(Externalizable.class)) {
        // clasz is a direct descendent of Externalizable
    }
}

如果您只需要了解Java标准版中的实现者,它们就会列在Externalizable javadoc中。