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基础反射---并没那么难系列【三】相关推荐

  1. java反射之获取class对象,Java之反射机制(获取Class对象的三种方式)

    Java之反射机制(获取Class对象的三种方式) 开发工具与关键技术:MyEclipse 10,java 作者:刘东标 撰写时间:2019-06-14 如何得到各个字节码对应的实例对象? 每个类被加 ...

  2. [Java基础] 反射机制汇总

    引言 初学Java反射机制的时候,只是感觉很神奇,但是不知道学了该怎么用,所以过了一段时间就忘得差不多了:最近接触到了框架,在学习中遇到了反射,深深体会到了反射机制的神奇,回来复习了一下反射机制,写一 ...

  3. 16、Java 基础-反射

    Java 反射 1.反射 反射是指程序可以访问.检测.修改它本身的状态或行为的一种能力. 2.Java的反射机制 java的反射机制是指在程序的运行状态中,给定任意一个类,都可以获取到这个累的属性和方 ...

  4. java基础反射知识总结_非常好的Java基础反射总结

    前言疯狂复习基础ing- 最近复习的Jv基础反射做了应该总结,果然反射不只有那么一点点东西,多的是精髓! 最重要的是最后推荐的那两篇文章,写的非常非常好!!反射 1.反射的原理Jv反射机制就是在运行状 ...

  5. java中h5是什么_[ 面试系列 ] - 三:H5 是什么?

    系列文章 H5 和 HTML5 我想可能很多同学都和曾经的我一样,认为 H5 是 HTML5 的简写,所谓 H5 开发,就是遵循 HTML5 标准的前端开发而已.但事实并非如此,尽管 H5 这个词最早 ...

  6. Java基础-反射机制

    目录 1.反射机制概述 2.获取class的三种方式 2.1.Class.forName()方式 2.2.obj.getClass()方式 2.3..class方式 3.通过反射实例化对象 4.通过读 ...

  7. JAVA基础5——与String相关的系列(1)

    与String相关的系列 String, 是JAVA中常见的一个引用类型,且其具有一定的特殊性. String类型被设置为final型,即不可继承,也就不可修改其中的实现. String可以改变吗 S ...

  8. 《Java基础》从入门到放弃系列 万字超详

    Javase详细教程 文章目录 Javase详细教程 前言 一.Java语言概述 1.1开发环境的搭建 1.1.1 JDK下载与安装 1.1.2 JDK.JRE.JVM的关系 1.1.3 path环境 ...

  9. Java基础—反射—简单介绍

    一.动态语言 动态语言,是指程序在运行时可以改变其结构:新的函数可以引进,已有的函数可以被删除等结构上的变化.比如常见的 JavaScript 就是动态语言,除此之外 Ruby,Python 等也属于 ...

  10. [Java基础]反射获取成员方法并使用

    代码如下: package ClassObjectPack01;import ClassObjectPack.Student;import java.lang.reflect.Constructor; ...

最新文章

  1. IRNet:弱监督实例分割 | 步步为营,隔山打牛
  2. lotus php,LotusPhp框架目录_PHP教程
  3. 前阿里巴巴产品专家明卿:当下做通用积分还是个好生意吗?
  4. Linux下crontab命令的用法
  5. Java 菜鸟进美团,居然是看了这个......
  6. 学习了下简单的光照模型
  7. webpack中hash、chunkhash、contenthash
  8. 時間用function 來計算...如此精確.
  9. 卸载软件后,win10应用与功能中仍有残留,解决方案。
  10. SVD在推荐系统中的应用【推荐】
  11. 如何删除永中集成office 2009
  12. Java web前端——HTML常用标签
  13. linux下安装sg11,linux服务器怎么装SG11解密插件?
  14. https证书、公钥、私钥、签名介绍
  15. 我的后台Java面经(阿里、腾讯、头条、京东、IBM等)
  16. qq里面cap字符_qq字符
  17. pbr发光 unity_【学习笔记】Unity PBR的实现
  18. 软考-程序员-资料整理1
  19. 调整分区后分区不见的数据找回法子
  20. html5在哪编辑器,HTML5文本编辑器推荐-属于Web开发人员的HTML5编辑器

热门文章

  1. vue+node全栈移动商城【8】-vant新建注册页面
  2. vux和iview的弹出框总结
  3. JAVA语言基础-反射、特性
  4. 从零开始做Vue前端架构(2)
  5. k3cloud报表单击列表某字段,弹出相应的单据
  6. 任何BUG都会被发现
  7. 魔兽争霸3地图(WarIII Maps):成神之路
  8. blocks bytes extents比较
  9. jQuery中的join方法
  10. 5.携程架构实践 --- 框架中间件