可以使用Java反射机制中的Class类的getSuperclass()方法来判断一个类是否继承自别的类。该方法返回一个Class对象,表示当前类的直接父类。

下面是一个示例代码:

public class Main {
    public static void main(String[] args) {
        // 判断MyClass是否继承自ParentClass
        boolean isSubclass = isSubclassOf(MyClass.class, ParentClass.class);
        System.out.println(isSubclass);  // 输出true

        // 判断ParentClass是否继承自Object类
        boolean isSubclassOfObject = isSubclassOf(ParentClass.class, Object.class);
        System.out.println(isSubclassOfObject);  // 输出true

        // 判断Object类是否继承自自身
        boolean isSubclassOfSelf = isSubclassOf(Object.class, Object.class);
        System.out.println(isSubclassOfSelf);  // 输出false
    }

    private static boolean isSubclassOf(Class<?> subclass, Class<?> superclass) {
        Class<?> superClass = subclass.getSuperclass();
        while (superClass != null) {
            if (superClass.equals(superclass)) {
                return true;
            }
            superClass = superClass.getSuperclass();
        }
        return false;
    }
}

class ParentClass {
}

class MyClass extends ParentClass {
}

在上述代码中,isSubclassOf()方法使用一个循环来判断子类的父类是否与目标父类相同。如果相同,则返回true,否则继续向上查找父类,直到找到目标父类或父类为空(到达顶级类Object)时返回false

Java中如何判断一个类有没有继承自别的类?注意不知道父类的情况下只需要知道是否是某个类的子类即可

原文地址: http://www.cveoy.top/t/topic/i1Yg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录