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

反射的基本知识

基本概念

反射是java在运行过程中的自我观察能力,通过class constructor field method 四个方法来获取一个类的各个组成部分。

  反射是在运行状态中对于任意一个类,都能知道这个类的所有属性和方法;对于任意一个对象都能调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为反射

作用:

反射的作用:

  1、可以得到类的全部成分并进行操作

  2、破坏类的封装型-----可以获取私有的构造器、方法、成员变量等

  3、做java框架

操作

1、加载类,获取类的字节码:class对象

  1. Class c1=类名.class
  2. 调用Class提供的方法:public static Class forName(String Package)
  3. Object提供的方法:public Class getClass();Class c3=对象.getClass()

2、获取类中的构造器,并对他进行操作

 

(1)getConstructors()方法:可以获取全部的public 修饰的构造器,在开发中很少使用

(2)getDeclaredConstructors()方法:获取全部构造器,只要存在就获取

(3)getConstructor()方法:获取某个构造器,且其只能被public修饰

(4)getDeclaredConstructor()方法:获取某个构造器,只要存在即可获取

在获取有参数的构造器时参数应写为    参数类型.class(例如  String.class),因为此时class就代表类型

初始化

提供newInstance()方法是用来实现初始化,setAccessible()方法设置为true时,表示禁止查询访问控制,即此时是私有化也可以进行初始化了

3、获取成员变量及其相关操作

4、获取类的成员方法并对其进行操作

和构造器、成员变量相同的

相关文章:

  • 【Linux】套接字的理解 基于TCP协议的套接字编程(单/多进程 / 线程池|英汉互译 / C++)
  • 如何安装 Docker
  • 基于微信小程序的校园捐赠系统的设计与实现
  • 探索移动云:我的ES与Kibana之旅
  • 基于springboot的大创管理系统
  • H4vdo 台湾APT-27视频投放工具
  • Go 项目如何打包在各个平台运行?
  • Spring Boot Web 开发:MyBatis、数据库连接池、环境配置与 Lombok 全面解析
  • C语言基础-静态变量(static)
  • 在win10中自动删除文件夹中特定的文件
  • 算法训练营第三十六天 | LeetCode 1005 K次取反后最大化的数组、LeetCode 134 加油站
  • 影响Oracle数据库打开速度的因素
  • 【go从入门到精通】精通并发编程-使用扇入扇出提升多个通道之间传递数据的效率
  • 【三数之和】python,排序+双指针
  • MySQL 视图(1)
  • angular2开源库收集
  • CSS3 变换
  • Facebook AccountKit 接入的坑点
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • JS基础之数据类型、对象、原型、原型链、继承
  • maven工程打包jar以及java jar命令的classpath使用
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • PHP的Ev教程三(Periodic watcher)
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • vue-router 实现分析
  • 技术发展面试
  • 三分钟教你同步 Visual Studio Code 设置
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 在weex里面使用chart图表
  • nb
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • (C++17) std算法之执行策略 execution
  • (C11) 泛型表达式
  • (简单) HDU 2612 Find a way,BFS。
  • (利用IDEA+Maven)定制属于自己的jar包
  • (十)T检验-第一部分
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (循环依赖问题)学习spring的第九天
  • (转)Sublime Text3配置Lua运行环境
  • .bat批处理出现中文乱码的情况
  • .NET Core 项目指定SDK版本
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .net refrector
  • .NET 读取 JSON格式的数据
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .net反混淆脱壳工具de4dot的使用
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • .Net中ListT 泛型转成DataTable、DataSet
  • [ IOS ] iOS-控制器View的创建和生命周期
  • []C/C++读取串口接收到的数据程序
  • []常用AT命令解释()
  • [AIGC] 使用Curl进行网络请求的常见用法
  • [APUE]进程关系(下)