tôi cần phải xác định xem một đối tượng Class đại diện cho một giao diện mở rộng giao diện khác, ví dụ:Xác định các giao diện mở rộng của một Class
package a.b.c.d;
public Interface IMyInterface extends a.b.d.c.ISomeOtherInterface{
}
theo the spec Class.getSuperClass() sẽ trả về null cho một giao diện.
Nếu lớp này đại diện cho một trong hai lớp Object, một giao diện, một loại nguyên thủy , hoặc bãi bỏ, sau đó null là trả lại.
Vì vậy, các thao tác sau sẽ không hoạt động.
Class interface = Class.ForName("a.b.c.d.IMyInterface")
Class extendedInterface = interface.getSuperClass();
if(extendedInterface.getName().equals("a.b.d.c.ISomeOtherInterface")){
//do whatever here
}
bất kỳ ý tưởng nào?
Trông với tôi như làm cho nó phức tạp hơn sau đó nó được; reimplementing những gì Java đã cung cấp. Giả sử tất cả các mã ở đây là chính xác, nó sẽ chỉ cung cấp cho câu trả lời tương tự như một lớp lót làAssignableTừ các câu trả lời khác. –