java.lang.Class.getInterfaces
возвращает все непосредственно реализованные интерфейсы, т.е. не проходит по дереву классов, чтобы получить все интерфейсы всех родительских типов. Например, например, иерархия
public interface A {}
public interface B {}
public interface C extends B {}
public class Foo implements A {} // Foo.class.getInterfaces() returns [A]
public class Bar implements C {} // Bar.class.getInterfaces() returns [C], note B is not included.
Для Bar
Я хотел бы получить [B, C]
, но для любой произвольной глубины дерева.
Я мог бы написать это сам, но я уверен, что должна существовать библиотека, которая уже это делает, есть идеи?