• JAVA中的反射机制


    什么是反射?

    1、Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;

    对于任意一个对象,都能调用它的任意一个方法和属性

    2、使用反射,可以在运行时对类Class、构造方法Constructor、普通方法Method、字段Field进行操作

    Class对象

    1、Class对象是对class文件(字节码文件)的描述对象。

    2、获得Class对象

      已知类的完整路径名(字符串):Class.forName("路径名")

      已知类型:String.class,确定的参数列表

      已知对象:obj.Class()

    3、常用方法

    使用默认构造方法创建实例:newInstance()

    Constructor对象

    1、Constructor对象,是构造方法的描述对象。

    2、获得构造方法

      公共的构造方法:Constructor<T>getConstructor(Class<?>...parameterTypes),可变参数用于确定形式参数列表

      已经声明的构造方法:Constructor<T> getDeclaredConstructor(Class<?>...parameterTypes),获得私有的构造

    3、实例化对象实例

    newInstance(Object...intargs),可变参数用于确定实际参数列表

    Method对象

    1、Method对象,是普通方法的描述对象

    2、获得的方法

      公共方法:Method getMethod(String name,Class<?>...parameterTypes) 通过方法name获得方法,可变参数为方法的形式参数列表

      已经声明的方法:Method getDeclaredMethod(String name,Class<?>...parameterTypes)方法操作

    3、执行指定方法

    Object invoke(Object obj,Object...args) 执行指定对象obj,指定方法,可变参数为方法的实际参数列表

    Field对象

    1、Field对象,是字段的描述对象

    2、获得方法

      所有字段:Field getField(String name),通过字段名称获得

      声明字段:Field getDeclaredField(String name)

    3、操作

      获得内容:Object get(Object obj)

      设置内容:void set(Object obj,Object value),确定实例对象

    反射机制应用实例传送门:https://www.cnblogs.com/Kingram/p/9263440.html

  • 相关阅读:
    layui下拉框数据过万渲染渲染问题解决方案
    eclipse debug启动时tomcat报错
    用eclipse的同一个tomcat启动两个javaweb项目
    Json
    @ResponseBody
    SpringMVC Controller 介绍
    tianmao项目的学习笔记
    Thymeleaf入门
    Thymeleaf th:include,th:replace使用
    X 在Windows上使用orakill结束oracle会话的线程
  • 原文地址:https://www.cnblogs.com/Kingram/p/9381111.html
Copyright © 2020-2023  润新知