我试图知道是否有任何两个类使用以下方法共享同一个超类
private boolean sameSuperclass(Class<?> leftClass, Class<?> rightClass) {
if(rightClass.getClass() instanceof leftClass.getSuperclass()) //I've also used leftClass.getSuperclass().name()
return true;
return false;
}
这似乎不起作用。还有其他办法吗?
答案 0 :(得分:1)
private static boolean sameSuperclass(Class<?> leftClass, Class<?> rightClass) {
if(rightClass.getGenericSuperclass().equals(leftClass.getGenericSuperclass()))
return true;
return false;
}
public static void main(String[] args) {
System.out.println(sameSuperclass(Integer.class,Float.class)); //true
System.out.println(sameSuperclass(TreeMap.class,ArrayList.class)); //false
}