要判断一个类是否是另一个类的内部类,可以使用 Java 反射机制中的 getDeclaringClass() 方法来获取类的声明类。如果一个类是另一个类的内部类,则它的声明类将是外部类的类对象。

以下是一个示例代码,演示如何判断一个类是否是另一个类的内部类:

import java.lang.reflect.Modifier;

public class Main {
    public static void main(String[] args) {
        // 判断类A是否是类B的内部类
        boolean isInnerClass = isInnerClass(A.class, B.class);
        System.out.println('A is inner class of B: ' + isInnerClass);

        // 判断类C是否是类D的内部类
        isInnerClass = isInnerClass(C.class, D.class);
        System.out.println('C is inner class of D: ' + isInnerClass);
    }

    public static boolean isInnerClass(Class<?> innerClass, Class<?> outerClass) {
        Class<?> declaringClass = innerClass.getDeclaringClass();
        return declaringClass != null && declaringClass.equals(outerClass);
    }

    private static class A {
        // A是B的内部类
    }

    private static class B {
        // B不是任何类的内部类
    }

    private class C {
        // C是D的内部类
    }

    private static class D {
        // D不是任何类的内部类
    }
}

输出结果为:

A is inner class of B: true
C is inner class of D: false

在上面的示例中,isInnerClass() 方法接受两个参数,分别是内部类的 Class 对象和外部类的 Class 对象。它使用 getDeclaringClass() 方法获取内部类的声明类,并通过比较该声明类是否等于外部类来判断是否为内部类。如果内部类的声明类不为空且与外部类相等,则认为内部类是外部类的内部类。

Java 判断类是否为内部类:使用 getDeclaringClass() 方法

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

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