在Java中获取接口的父接口

rth*_*hur 0 java interface class

我需要通过递归给定对象的所有接口和超类.当父是另一个类时,这很好,但是当一个接口扩展另一个接口时,我得到一个NullPointerException.

这是一个例子:

public class Test {

    private interface Foo {

    }

    private interface Bar extends Foo {

    }

    public static void main(String args[]) {
        System.out.println(Bar.class.getSuperclass().getSimpleName());
    }
}
Run Code Online (Sandbox Code Playgroud)

这会抛出NullPointerException而不是Foo按预期打印.有没有办法获得界面的超类?

414*_*v32 7

使用

Bar.class.getInterfaces()

获取Bar实现的接口.

更新

根据您的需要,您可能希望查找特定的接口或类:

酒吧= ...

if (bar instanceof Foo) {
    System.out.println(true);
}

// Or
if (Foo.class.isInstance(bar)) {
    System.out.println(true);
}

// Or
if (Foo.class.isAssignableFrom(Bar.class)) {
    System.out.println(true);
}
Run Code Online (Sandbox Code Playgroud)