我有一个接收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
答案 0 :(得分:-3)
你可以使用Reflection API,例如宝马实现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) {
}
}
}
请告诉我这是否能解决您的问题