当前位置: 首页 > news >正文

如何使用 Java 的反射

如何使用 Java 的反射?

  • 通过一个全限类名创建一个对象

Class.forName(“全限类名”); 例如:com.mysql.jdbc.Driver Driver 类已经被加载到 jvm
中,并且完成了类的初始化工作就行了

  • 类名.class; 获取 Class<?> clz 对象对象.getClass();
    -获取构造器对象,通过构造器 new 出一个对象
    Clazz.getConstructor([String.class]);
    Con.newInstance([参数]);
  • 通过 class 对象创建一个实例对象(就相当与 new 类名()无参构造器) Cls.newInstance();
  • 通过 class 对象获得一个属性对象
    Field c=cls.getFields():获得某个类的所有的公共(public)的字段,包括父类中的字段。Field c=cls.getDeclaredFields():获得某个类的所有声明的字段,即包括 public、private 和 proteced,但是不包括父类的声明字段
  • 通过 class 对象获得一个方法对象
    Cls.getMethod(“方法名”,class……parameaType);(只能获取公共的)
    Cls.getDeclareMethod(“方法名”);(获取任意修饰的方法,不能执行私有)
    M.setAccessible(true);(让私有的方法可以执行)
  • 让方法执行
    Method.invoke(obj 实例对象,obj 可变参数); (是有返回值的)
http://www.lryc.cn/news/261954.html

相关文章:

  • PLC-Recorder V3 修改服务器和客户端通讯端口的方法
  • libevent服务GET/POST的简单使用
  • MySQL 系列:注意 ORDER 和 LIMIT 联合使用的陷阱
  • 通过实例理解OAuth2授权
  • MATLAB2022安装下载教程
  • 从零开始搭建Go语言开发环境
  • vite+vue3+ts+tsx+ant-design-vue项目框架搭建
  • 【5G PHY】5G小区类型、小区组和小区节点的概念介绍
  • 创建个人网站(一)从零开始配置环境,搭建项目
  • fripside - promise lrc
  • 网络连接和协议
  • MySQL数据库,表的增量备份与恢复
  • 13.Spring 整合 Kafka + 发送系统通知 + 显示系统通知
  • windows 服务器 怎么部署python 程序
  • Chapter 7 - 2. Congestion Management in Ethernet Storage Networks以太网存储网络的拥塞管理
  • 深入理解前端项目中的 package.json
  • 4-Docker命令之docker build
  • Hdfs java API
  • 大数据Doris(三十七):索引和Rollup基本概念和案例演示
  • 2019年第八届数学建模国际赛小美赛B题数据中心冷出风口的设计解题全过程文档及程序
  • mmpose 使用笔记
  • <url-pattern>/</url-pattern>与<url-pattern>/*</url-pattern>的区别
  • Spring IoCDI
  • vue使用el-tag完成添加标签操作
  • ACM-MM2023 DITN详解:一个部署友好的超分Transformer
  • STM32超声波——HC_SR04
  • [Excel] vlookup函数
  • Python入门第5篇(爬虫相关)
  • 单元测试二(实验)-云计算2023.12-云南农业大学
  • Axure动态面板的使用以及示例分享