zoukankan      html  css  js  c++  java
  • java反射机制

    反射
    动态获取信息以及动态调用对象的方法的功能称为java语言的反射机制

    Java反射相关的类主要包括

    • Class 类型
    • Constructor 构造方法
    • Method 方法
    • Field 属性

    Class类
    Class类中的主要方法

    • getMethod:返回类中某一个方法的实例
    • getMethods: 返回类中所有方法的实例
    • getField:返回类中某一个属性的实例
    • getFields:返回类中所有属性的实例
    • getConstructor:返回类中的一个构造方法的实例


    获得Class类实例的常用方法有如下三个

    • Object类中的getClass方法(对象)
    • 类名.class(类名必须是常量)
    • Class类的静态方法forName(String name)(类名可以是变量)

    Constructor类

    • getName:返回构造方法的名字
    • getParameterTypes:返回构造方法的参数类型
    • newInstance(Object... initargs) :创建实例

    Constructor实例都是通过Class类的方法获得

    • Constructor<T> getConstructor(Class... parameterTypes) :通过指定参数类型,返回构造方法实例。
    • Constructor[] getConstructors() :返回该类的所有构造方法实例

    Method类

    • getReturnType:获得方法返回值类型
    • getName:获得方法名字
    • getParameterTypes:获得方法参数类型
    • invoke(Object obj, Object... args) :使用obj调用该方法,参数为args

    Method实例都是通过Class类的方法获得

    • Method getMethod(String name, Class... parameterTypes) :通过指定方法名,参数类型,返回一个Method实例
    • Method[] getMethods() :返回该类中所有方法的Method实例

    Field类

    • getName:返回属性的名字
    • getXXX:例如,getFloat返回该属性float类型的值
    • setXXX:例如,setFloat为属性赋值float类型的值

    获得Field实例,都是通过Class中的方法实现

    • public Field getField(String name)
    • 通过指定Field名字,返回Field实例
    • 注意Field的访问权限
    •  

     

     

  • 相关阅读:
    Netty 源码解读(二)-ChannelPipeline、ChannelHandler、ChannelHandlerContext
    Netty源码解读(一)-服务启动和接收请求源码
    浅谈自动化测试框架开发
    程序运行时环境
    常见的Linux内核线程
    一个好用gdb扩展工具
    使用Qemu模拟Numa机器
    使用qemu的nat方式登录
    2021.32 量化
    2021.31 模型
  • 原文地址:https://www.cnblogs.com/-maji/p/7273583.html
Copyright © 2011-2022 走看看