Java基础反射---并没那么难系列【三】
1.发射概述
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
2.反射的使用
本文只讲具体的一个方法使用 实例可参照本文:反射
2.1.获取Class类的对象的三种方式
2.1.1.方式一
源代码时期 -> .class文件还没有加载到内存中.
Class.forName(“类的全限定类名”); Class.forName(“com.demo.Student”)
2.1.2.方式二
类加载时期ClassLoader -> 类名.class
2.1.3.方式三
Runtime运行期 -> 对象.getClass(); 来获取对象所在类的class对象
2.2.使用反射获取多个参数构造方法并使用+使用反射获取私有构造方法并使用
这里我们两个一起说
2.2.1.方式一(getXXX/getDeclaredXXX)
获取构造器 -> 构造方法的参数列表来进行判断具体要获取哪个的.
public Student(String name,int age){}
getDeclaredConstructor(String.class,int.class)
2.2.2.方式二(getXXXs/getDeclaredXXXs)
a.获取所有被public修饰的构造方法.
b.获取所有的构造方法
2.2.3.方式三(Constructor -> 构造器对象)
newInstance("张三",19);
2.2.4.方式四(暴力反射)
通过Constructor对象的setAccessible(true)设置暴力反射.
2.3.使用反射获取不同访问修饰的成员变量并使用
2.3.1.方式一(getXXX/getDeclaredXXX)
a.根据成员变量名进行成员变量对象(Filed)的获取,只能获取public修饰的.
b.根据成员变量名进行成员变量对象(Filed)的获取,可以获取任意修饰符修饰的成员变量对象.
2.3.2.方式二(getXXXs/getDeclareds)
a.获取所有被public修饰的成员变量对象.
b.获取所有的成员变量对象.
2.3.3.方式三(Filed -> 成员变量)
a.获取成员变量的值(get(Object o); -> 获取对象o的这个成员变量的值)
b.设置成员变量的值(set(Object o,Object value) -> 参数1:指定要被设置成员变量的对象,参数2:具体设置的值)
2.3.4.方式四(设置暴力反射)
通过Filed对象的setAccessible(true)设置暴力反射
2.4.使用反射获取带参带返回值的方法使用
2.4.1.方式一(通过什么参数去获取指定的成员方法)
方法名+参数列表
2.4.2.方式二
public void show(String name){}
public void method(String name){}
2.4.3.方式三
cls.getDeclaredMethod("method",String.class)
2.4.4.方式四
Method -> 要调用成员方法就必须指定哪个对象调用成员方法
2.4.5.方式五
method.invoke(Object o,Object...)
2.5.使用反射越过泛型检查
暴力反射
2.6.使用反射运行配置文件指定内容
2.6.1.方式一(getXXX/getDeclaredXX)
a.根据成员变量名进行成员变量对象(Filed)的获取,只能获取public修饰的.
b.根据成员变量名进行成员变量对象(Filed)的获取,可以获取任意修饰符修饰的成员变量对象.
2.6.2.方式二(getXXXs/getDeclareds)
a.获取所有被public修饰的成员变量对象.
b.获取所有的成员变量对象.
Java基础反射---并没那么难系列【三】相关推荐
- java反射之获取class对象,Java之反射机制(获取Class对象的三种方式)
Java之反射机制(获取Class对象的三种方式) 开发工具与关键技术:MyEclipse 10,java 作者:刘东标 撰写时间:2019-06-14 如何得到各个字节码对应的实例对象? 每个类被加 ...
- [Java基础] 反射机制汇总
引言 初学Java反射机制的时候,只是感觉很神奇,但是不知道学了该怎么用,所以过了一段时间就忘得差不多了:最近接触到了框架,在学习中遇到了反射,深深体会到了反射机制的神奇,回来复习了一下反射机制,写一 ...
- 16、Java 基础-反射
Java 反射 1.反射 反射是指程序可以访问.检测.修改它本身的状态或行为的一种能力. 2.Java的反射机制 java的反射机制是指在程序的运行状态中,给定任意一个类,都可以获取到这个累的属性和方 ...
- java基础反射知识总结_非常好的Java基础反射总结
前言疯狂复习基础ing- 最近复习的Jv基础反射做了应该总结,果然反射不只有那么一点点东西,多的是精髓! 最重要的是最后推荐的那两篇文章,写的非常非常好!!反射 1.反射的原理Jv反射机制就是在运行状 ...
- java中h5是什么_[ 面试系列 ] - 三:H5 是什么?
系列文章 H5 和 HTML5 我想可能很多同学都和曾经的我一样,认为 H5 是 HTML5 的简写,所谓 H5 开发,就是遵循 HTML5 标准的前端开发而已.但事实并非如此,尽管 H5 这个词最早 ...
- Java基础-反射机制
目录 1.反射机制概述 2.获取class的三种方式 2.1.Class.forName()方式 2.2.obj.getClass()方式 2.3..class方式 3.通过反射实例化对象 4.通过读 ...
- JAVA基础5——与String相关的系列(1)
与String相关的系列 String, 是JAVA中常见的一个引用类型,且其具有一定的特殊性. String类型被设置为final型,即不可继承,也就不可修改其中的实现. String可以改变吗 S ...
- 《Java基础》从入门到放弃系列 万字超详
Javase详细教程 文章目录 Javase详细教程 前言 一.Java语言概述 1.1开发环境的搭建 1.1.1 JDK下载与安装 1.1.2 JDK.JRE.JVM的关系 1.1.3 path环境 ...
- Java基础—反射—简单介绍
一.动态语言 动态语言,是指程序在运行时可以改变其结构:新的函数可以引进,已有的函数可以被删除等结构上的变化.比如常见的 JavaScript 就是动态语言,除此之外 Ruby,Python 等也属于 ...
- [Java基础]反射获取成员方法并使用
代码如下: package ClassObjectPack01;import ClassObjectPack.Student;import java.lang.reflect.Constructor; ...
最新文章
- IRNet:弱监督实例分割 | 步步为营,隔山打牛
- lotus php,LotusPhp框架目录_PHP教程
- 前阿里巴巴产品专家明卿:当下做通用积分还是个好生意吗?
- Linux下crontab命令的用法
- Java 菜鸟进美团,居然是看了这个......
- 学习了下简单的光照模型
- webpack中hash、chunkhash、contenthash
- 時間用function 來計算...如此精確.
- 卸载软件后,win10应用与功能中仍有残留,解决方案。
- SVD在推荐系统中的应用【推荐】
- 如何删除永中集成office 2009
- Java web前端——HTML常用标签
- linux下安装sg11,linux服务器怎么装SG11解密插件?
- https证书、公钥、私钥、签名介绍
- 我的后台Java面经(阿里、腾讯、头条、京东、IBM等)
- qq里面cap字符_qq字符
- pbr发光 unity_【学习笔记】Unity PBR的实现
- 软考-程序员-资料整理1
- 调整分区后分区不见的数据找回法子
- html5在哪编辑器,HTML5文本编辑器推荐-属于Web开发人员的HTML5编辑器