Java 判断类是否为内部类:使用 getDeclaringClass() 方法
要判断一个类是否是另一个类的内部类,可以使用 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() 方法获取内部类的声明类,并通过比较该声明类是否等于外部类来判断是否为内部类。如果内部类的声明类不为空且与外部类相等,则认为内部类是外部类的内部类。
原文地址: https://www.cveoy.top/t/topic/teR 著作权归作者所有。请勿转载和采集!