6.查看内部类信息

下面学习如何获得一个类的内部类的信息
关键方法

getDeclaredClasses();此方法用于获得一个类的内部类的Class数组

实例:

import java.lang.reflect.Modifier;
import java.lang.reflect.Type;

public class NestedClassInformation {
    
    
    public static void main(String[] args) throws ClassNotFoundException {
    
    
        Class<?> cls = Class.forName("java.awt.geom.Point2D");
        // 获得代表内部类的Class对象组成的数组
        Class<?>[] classes = cls.getDeclaredClasses();
        // 遍历Class对象数组
        for (Class<?> clazz : classes) {
    
    
            System.out.println("类的标准名称:" + clazz.getCanonicalName());
            System.out.println("类的修饰符:" + Modifier.toString(clazz.getModifiers()));
            Type[] interfaces = clazz.getGenericInterfaces();// 获得所有泛型接口
            System.out.println("类所实现的接口:");
            if (interfaces.length != 0) {
    
    // 如果泛型接口个数不是0则输出
                for (Type type : interfaces) {
    
    
                    System.out.println("\t" + type);
                }
            } else {
    
    
                System.out.println("\t" + "空");
            }
            // 获得直接父类
            Type superClass = clazz.getGenericSuperclass();
            System.out.print("类的直接继承类:");
            if (superClass != null) {
    
    // 如果直接父类不是Object就输出
                System.out.println(superClass);
            } else {
    
    
                System.out.println("空");
            }
        }
    }
}

运行结果:
在这里插入图片描述

おすすめ

転載: blog.csdn.net/c1776167012/article/details/121548502