检查两个类是否具有相同的超类

时间:2014-06-25 13:27:59

标签: java superclass instanceof

我试图知道是否有任何两个类使用以下方法共享同一个超类

private boolean sameSuperclass(Class<?> leftClass, Class<?> rightClass) {
    if(rightClass.getClass() instanceof leftClass.getSuperclass()) //I've also used leftClass.getSuperclass().name()
        return true;
    return false;
}

这似乎不起作用。还有其他办法吗?

1 个答案:

答案 0 :(得分:1)

尝试Generic Superclass

    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
    }