美文网首页
Java 反射

Java 反射

作者: 醉红尘_acb4 | 来源:发表于2021-01-24 17:41 被阅读0次

    Java 反射

    Method[] methods = o.getClass().getMethods(); //获取方法集
    
    for (Method c : methods){
        System.out.println("方法名:" + c.getName);
         /*获取方法,方法名,参数类型...*/
        Method method = o.getClass().getMethod(c.getName(), Object.class);
        /*调用方法,当前对象,赋予值*/
        method.invoke(o, "张三");
    }
    
    Field[] fields = o.getClass().getDeclaredFields();  //获取字段集
    
    for (Field field : fields){
        /*判断字段是否存在*/
          boolean annotationPresent = field.isAnnotationPresent(ResultValue.class);
        if (annotationPresent){ 
            field.setAccessible(true); /*允许访问私有变量*/
            field.set(o, os); /*字段赋值*/
        }
    }
    

    类方法

    类别 说明
    Class<?> \color{red}{类}
    Class.forName(String className) 通过(全路径)类名,获取类对象
     
    getConstructors() 获取构造函数集合
    getConstructor(String var1) 获取构造函数
     
    getDeclaredConstructors() 获取声明的构造函数集合
    getDeclaredConstructor(String var1) 获取声明的构造函数
     
    getMethods() 获取方法集合
    getMethod(String var1) 获取方法
     
    getDeclaredFields() 获取声明的字段集合
    getDeclaredField(String var1) 获取声明的字段

    其他方法

    isAnnotationPresent() //是否存在注解
     
    getAnnotation(Class<T> annotationClass); //获取注解
     
    setAccessible(boolean flag) //是否允许访问私有变量
     
    method.invoke(Object var1,Object var2); //执行方法
     
    field.set(Object var1, Object var2); //字段赋值

    相关文章

      网友评论

          本文标题:Java 反射

          本文链接:https://www.haomeiwen.com/subject/rjwezktx.html