浅谈Java反射(Reflect)技术--常用方法
Java反射(Reflect)技术
概念:动态获取在当前Java虚拟机中的类、接口或者对象等等信息(运行过程中读取内容)
1.作用(面试问题):
1.1 解除两个类之间的耦合性,即在未得到依赖类的情况下,自身应用可以通过编译
1.2 动态依赖注入(即需要某一类对象时动态生成类实例,并设置到被依赖的类中),减少编译时的内存开销 (大多框架都用)
2.获取Class对象的三种方式:(重要)
2.1、使用Class类的静态方法: Class.forName(String name) jdbc注册驱动使用过;
2.2、类的语法:T.class,代表了与其匹配的Class对象 json:解析:fastjson,gson,org开头的。。。
2.3、使用类的实例化的getClass方法: obj.getClass()
3.获取类的构造器java.lang.reflect.Constructor(了解)
3.1 public Constructor<?>[] getConstructors() 返回类中所有的public构造器集合,默认构造器的下标为0
3.2 public Constructor<T> getConstructor(Class<?>... parameterTypes) 返回指定public构造器,参数为构造器参数类型集合
3.3 public Constructor<?>[] getDeclaredConstructors() 返回类中所有的构造器,包括私有
3.4 public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes) 返回任意指定的构造器
3.5 Constructor重要的方法newInstance(Object ...initargs) 实例化类
4.获取类的成员变量java.lang.reflect.Field(重要)
4.1 public Field[] getFields() 获取所有的public成员变量
4.2 public Field getField(String?name) 获取任意public成员变量
4.3 public Field[] getDeclaredFields() 获取所有的成员变量
4.4 public Field getDeclaredField(String?name) ?获取任意指定名字的成员变量
4.5 public void setAccessible(boolean flag) 设置私有属性是否可访问
4.6 Field 重要方法set(Object obj, Object value) 字段设置为指定的新值。
5.获取类的方法java.lang.reflect.Method(重要)
5.1 public Method[] getMethods() 获取所有的共有方法的集合
5.2 public Method?getMethod(String?name,Class<?>... parameterTypes) 获取指定公有方法
5.3 public Method[] getDeclaredMethods() ?获取所有的方法
5.4 public Method getDeclaredMethod(String?name,Class<?>... parameterTypes) 获取任意指定方法
5.5 Method重要方法invoke(Object obj ,Object…parmasType) 执行对象的方法,第一个参数为类实例对象,第二个参数:对象方法的参数
6.Class类的实例化方法 newInstance()
7.获取类的全名:getName() ;包名+类名
8.获取类的简称:getSimpleName() 类名
9.获取类的包名:getPackage() 包名
浅谈Java反射(Reflect)技术--常用方法相关推荐
- 浅谈Java反射机制 之 获取类的字节码文件 Class.forName(全路径名) 、getClass()、class...
先贴上Java反射机制的概念: AVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法: 对于任意一个对象,都能够调用它的任意一个方法和属性: 这种动态获取的信息以及动态调用对 ...
- 浅谈Java反射的实现原理
从一段示例代码开始 Class clz = Class.forName("ClassA");Object instance = clz.newInstance();Method m ...
- java反射 用处_浅谈Java反射
一.何为反射 反射就是对于任何一个类都能知道这个类的的所有属性和方法,并且对于任何一个对象都能调用他的属性和方法,而且能修改其属性. 二.反射的作用 就我的理解来看,通常我们在写代码的时会非常强调代码 ...
- java虚拟机类加载机制浅谈_浅谈Java虚拟机(三)之类加载机制
在<浅谈Java虚拟机>这篇文章中,我们提到了JVM从操作系统方面来说,可以将其看做是一个进程,分别有类加载器子系统,执行引擎子系统和垃圾收集子系统.这一篇文章就简单的来谈一下类加载器子系 ...
- 浅谈JAVA程序破解(原创)
浅谈JAVA程序破解 作者:舵手 申明:如转载请保证文章的完整性以及出处 最近对JAVA程序的破解比较感兴趣,拿几个行业软件练了一下手,略有心得,拿出来与菜鸟分享!注意只是一点心得, 本文并不涉及具体 ...
- 浅谈JAVA程序破解
浅谈JAVA程序破解 http://www.blogjava.net/galaxyp/archive/2006/04/19/41833.html 作者:舵手 申明:如转载请保证文章的完整性以及出处 最 ...
- 浅谈 Java Printing
浅谈 Java Printing 其实怎么说呢?在写这篇博文之前,我对java printing 可以说是一无所知的.以至于我在敲文字时, 基本上是看着api文档翻译过来的.这虽然看起来非常的吃力, ...
- java对象头_浅谈java对象结构 对象头 Markword
概述 对象实例由对象头.实例数据组成,其中对象头包括markword和类型指针,如果是数组,还包括数组长度; | 类型 | 32位JVM | 64位JVM| | ------ ---- | ----- ...
- 浅谈Java中的Set、List、Map的区别
就学习经验,浅谈Java中的Set,List,Map的区别,对JAVA的集合的理解是想对于数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操 ...
最新文章
- jQuery-1.9.1源码分析系列(十六)ajax——ajax处理流程以及核心函数
- 测试String, StringBuilder,StringBuffer 的数据,我居然发现这些了~~
- 公开最近开发的OA的框架图
- rmarkdown+flexdashboard制作dashboard原型
- Oracle问题小记五:服务启动-索引-子查询-分页存储过程
- Dubbo 服务 IP 注册错误踩坑经历
- VMware Horizon USB重定向排除特定设备
- 程序员应该有制定工作计划的意识
- html设置可编辑状态,HTML5 - 使某个页面元素或整个页面可编辑
- educoder:实验十一 函数
- 基于昇腾AI异构计算架构CANN的通用目标检测与识别一站式方案初体验
- GOLANG工厂模式、简单工厂模式、抽象工厂模式、创建者模式
- 95后程序员月薪2万背着电脑送外卖,送单途中帮人修复bug
- 罗技无线鼠标接收器无法配对的详细解决办法
- sql的datetime 数据类型
- 从零开始学前端 - 7. CSS盒模型 margin和padding详解
- godaddy nginx_2020年7种最佳GoDaddy替代品(更便宜且更可靠)
- 在PRESS.one这片蛮荒沃土上,我们都是拓荒者
- 计算机保存到桌面没有显示,电脑系统进不去桌面,没有图标怎么办?
- 【vue系列-05】vue的生命周期(详解)
热门文章
- nrf51822蓝牙芯片ble_app_proximity程序总结
- java ee domain作用_java EE应用概述
- 百度超级链XChain(2)p2p网络
- C++(一)——存储持续性、作用域、链接性
- 【数据库复习】第一章绪论
- 5-Interrupt Management Framework
- [architecture]-ARMV7架构下Linux Kernel的Userspace进程切换时保存和恢复哪些寄存器
- [core]-ARM A76学习笔记
- 统计学要学的计算机课程有哪些,统计学专业主要课程学什么_课程设置安排及分类...
- scrapy python3.8_银狐DevNet-网络运维Python初篇(四)netmiko抓取华为网络配置并存入本地...