• Java反射方法总结


    1、得到构造器的方法

    1. Constructor getConstructor(Class[] params) -- 获得使用特殊的参数类型的公共构造函数,
    2. Constructor[] getConstructors() -- 获得类的所有公共构造函数
    3. Constructor getDeclaredConstructor(Class[] params) -- 获得使用特定参数类型的构造函数(与接入级别无关)
    4. Constructor[] getDeclaredConstructors() -- 获得类的所有构造函数(与接入级别无关)

    2、获得字段信息的方法

    1. Field getField(String name) -- 获得命名的公共字段
    2. Field[] getFields()--获得类的所有公共字段
    3. Field getDeclaredField(String name) --获得类声明的命名的字段
    4. Field[] getDeclaredFields()-- 获得类声明的所有字段

    3、获得方法信息的方法

    1. Method getMethod(String name, Class[] params) -- 使用特定的参数类型,获得命名的公共方法
    2. Method[] getMethods() -- 获得类的所有公共方法
    3. Method getDeclaredMethod(String name, Class[] params) -- 使用特写的参数类型,获得类声明的命名的方法
    4. Method[] getDeclaredMethods() -- 获得类声明的所有方法
    总结: ========>>>>>>>> 带有DeclaredMethod 获取本类私有方法 字段  不包括父类相关的值, 不带有的方法 只能获取本类public的字段 方法,以及父类相关的字段 方法

    4:获取注解的方法

    1. Annotation[] annotations = (Annotation[]) class1.getAnnotations();//获取class对象的所有注解 
    2. Annotation annotation = (Annotation) class1.getAnnotation(Deprecated.class);//获取class对象指定注解
    3. Type genericSuperclass = class1.getGenericSuperclass();//获取class对象的直接超类的
    4. Type Type[] interfaceTypes = class1.getGenericInterfaces();//获取class对象的所有接口的type集合

    5:其他扩展方法

    1. boolean isPrimitive = class1.isPrimitive();//判断是否是基础类型
    2. boolean isArray = class1.isArray();//判断是否是集合类
    3. boolean isAnnotation = class1.isAnnotation();//判断是否是注解类
    4. boolean isInterface = class1.isInterface();//判断是否是接口类
    5. boolean isEnum = class1.isEnum();//判断是否是枚举类
    6. boolean isAnonymousClass = class1.isAnonymousClass();//判断是否是匿名内部类
    7. boolean isAnnotationPresent = class1.isAnnotationPresent(Deprecated.class);//判断是否被某个注解类修饰
    8. String className = class1.getName();//获取class名字 包含包名路径
    9. Package aPackage = class1.getPackage();//获取class的包信息
    10. String simpleName = class1.getSimpleName();//获取class类名
    11. int modifiers = class1.getModifiers();//获取class访问权限
    12. Class<?>[] declaredClasses = class1.getDeclaredClasses();//内部类
    13. Class<?> declaringClass = class1.getDeclaringClass();//外部类
    14. getSuperclass():获取某类的父类
    15. getInterfaces():获取某类实现的接口

    6. 具有的类型

    • ParameterizedType:表示一种参数化的类型,比如Collection< String >
    • GenericArrayType:表示一种元素类型是参数化类型或者类型变量的数组类型
    • TypeVariable:是各种类型变量的公共父接口
    • WildcardType:代表一种通配符类型表达式,比如?、? extends Number、? super Integer。(wildcard是一个单词:就是”通配符“)

  • 相关阅读:
    SQL 2008 数据库只读 修改
    java List 简单使用
    鼠标右键菜单 删除
    SQL distinct
    日系插画学习笔记(五):日系角色脸部画法-1头部
    日系插画学习笔记(四):基础人体结构
    日系插画学习笔记(三):光影与结构
    日系插画学习笔记(二):结构与透视
    日系插画学习笔记(一):SAI软件基础
    spring mvc 静态资源版本控制
  • 原文地址:https://www.cnblogs.com/dgwblog/p/11701256.html
Copyright © 2020-2023  润新知