У меня есть метод, который получает объект TypeElement. Этот объект может содержать либо интерфейс, либо абстрактный класс. Любой из них может расширить или реализовать другой интерфейс.
Как получить все нереализованные методы элемента типа, которые у меня есть, включая его суперклассы и интерфейсы? А также убедиться, что каждый метод указан только один раз?
P.S. Иногда методы объявляются в интерфейсах, а затем снова объявляются в абстрактных классах.
Сценарии
abstract class A { ...methods... }
interface B{ ...methods... }`
abstract class A implements B,C { ...methods... }
abstract class A extends B { ...methods... } // B is an abstract class
interface A extends B,C { ...methods... }// B & C are both interfaces
Ответ 1 · рейтинг -3 · Mudassar
Вы можете использовать Reflection API, например, BMW реализует Car, аналогично это может быть любая реализация Car, и приведенный ниже getDeclaredMethods() предоставит все методы, аналогично getSuperclass(), который предоставит родителю множество методов для получения необходимых деталей.
public class Reflection {
public static void main(String[] args) {
Car car = new BMW();
Class rental = car.getClass();
try {
Method[] declaredMethods = rental.getDeclaredMethods();
System.out.println("Declared Methods are: "
+ Arrays.toString(declaredMethods));
for (Method dmethod : declaredMethods) {
System.out.println("method = " + dmethod.getName());
}
} catch (Exception e) {
}
}
}
Пожалуйста, дайте мне знать, если это ответит на вашу проблему