• 反射有哪些常见的API呢?


    转自:

    反射具有哪些常用的API呢?

    下文笔者讲述反射常用API的简介说明,如下所示:

    获取构造函数

    Connstructor getConstructor(Class<?>... parameterTypes):
        返回此Class对象对应类的指定public构造器
    Constructor<?>[] getConstructors():
        返回此Class对象对应类的所有public构造器。
    Constructor getDeclaredConstructor(Class<?>... parameterTypes):
        返回此Class对象对应类的指定构造器,与构造器的访问权限无关
    Constructor<?>[] getDeclaredConstructors():
        返回此Class对象对应类的所有构造器,与构造器的访问权限无关
    

    获取方法

    Method getDeclaredMethod(String name, Class<?>... parameterTypes):
        返回此Class对象对应类的指定方法,与方法的访问权限无关
    Method[] getDeclaredMethods():
         返回此Class对象对应类的全部方法,与方法的访问权限无关
    

    获取属性

    Field getField(String name):
        返回此Class对象对应类的指定public Field
    Field[] getFields():
        返回此Class对象对应类的所有public Field
    Field getDeclaredField(String name):
         返回此Class对象对应类的指定Field,与Field的访问权限无关
    Field[] getDeclaredFields():
         返回此Class对象对应类的全部Field,与Field的访问权限无关
    

    获取Class对应类上所包含的注解

    A getAnnotation(Class annotationClass):
        试图获取该Class对象对应类上指定类型的Annotation
    	   如果该类型的注释不存在,则返回null
    Annotation[] getAnnotations():
         返回该Class对象对应类上的所有Annotation 
    Annotation[] getDeclaredAnnotations():
         返回直接修饰该Class对应类的所有Annotation
    

    获取Class对象对应类包含的内部类

    Class<?>[] getDeclaredClasses():
        返回该Class对象对应类里包含的全部内部类
    

    获取Class对象对应类所在的外部类

    Class<?> getDeclaringClass():
         返回该Class对象对应类所在的外部类
    

    获取Class对象对应类所继承的父类、所实现的接口等

    Class<?>[] getInterfaces():
        返回该Class对象对应类所实现的全部接口
    

    获取Class对象对应类所继承的父类

    Class<? super T> getSuperclass():
       返回该Class对象对应类的超类的Class对象
    

    获取Class对象对应类的修饰符、所在包、类名等基本信息

    int getModifiers():
         返回此类或接口的所有修饰符
        修饰符由public、protected、private、final、static、abstract等对应的常量组成
    	 返回的整数应使用Modifier工具类的方法来解码,才可以获取真实的修饰符。
    Package getPackage():
          获取此类的包
    String getName():
          以字符串形式返回此Class对象所表示的类的名称
    String getSimpleName():
          以字符串形式返回此Class对象所表示的类的简称
    

    判断该类是否为接口、枚举、注释类型等

    boolean isAnnotation():
        返回此Class对象是否表示一个注释类型(由@interface定义)
    boolean isAnnotationPresent(Class<? extends Annotation> annotationClass):
        判断此Class对象是否使用了Annotation注释修饰
    boolean isAnonymousClass():
        返回此Class对象是否是一个匿名类
    boolean isArray():
        返回此Class对象是否表示一个数组类
    boolean isEnum():
         返回此Class对象是否表示一个枚举(由enum关键字定义)
    boolean isInterface():
         返回此Class对象是否表示一个接口(使用interface定义)
    boolean isInstance(Object obj):
         判断obj是否是此Class对象的实例,该方法可以完全代替instanceof操作符
  • 相关阅读:
    axios 请求的缓存封装
    量化投资学习——股指期货研究(三)
    javaweb 之 Request 和 Response 常见案例 用户登录和注册
    【RSocket】使用 RSocket (一)——建立连接
    5G速度网络瘫痪如何用CDN解决?
    聊聊公司的那点事
    JUC P6 AQS,读写锁,StampLock,Semaphore,CountdownLatch,CyclicBarrier 基础+代码
    【高性能计算】OneAPI入门
    pywinauto如何连接已经打开的应用程序
    qtdesigner添加菜单栏工具栏及监听事件
  • 原文地址:https://blog.csdn.net/qq_25073223/article/details/125549387