这里写目录标题

  • 反射的引入
  • 解决问题:
  • 反射的入口—Class类
  • 获取对象的多种方式:
  • 创建对象的两种方式
  • 调用私有的构造方法
  • 通过反射操作属性
  • 调用方法:
  • 反射的优点和缺点:
  • 使用反射操作泛型
  • 通过双重for循环,进行遍历出每一个类型对用的泛型:
  • 反射突破泛型的限制

反射的引入

为什么要用反射,比如我们在一个类中,取调用一个类,用new的方式去创建那个类的对象,那如果那个类被改名了,那么new对象,就会报错,在后面的框架内,就是解耦

引入问题:

解决问题:

反射

得到的结果是true,在我们使用的框架中,只要是涉及到类的全路径或者绝对路径,百分之百就是利用反射引用某种属性或者对象

反射的入口—Class类


之前我们研究的都是类和对象的关系,类就像模板,对象就像是按照类的模板创建的实例,然后我们就可以拿着用即可。

那么在类之前,还有一个,叫做类的对象,他保存的就是类模板的初始信息,相当于一个类的结构信息

我们之前创建普通对象都是通过class类的模板创建的,而反射是通过类的结构信息,类的对象Class创建的对象,这个过程,就叫做反射






获取对象的多种方式:

创建对象的两种方式


那么在之前,我们在进行有参构造的时候,我们new的时候,就直接传参了

那么在使用这种方法创建对象 的时候也可以进行传值,在newInstance中有内置的方法

调用私有的构造方法


需要突破封装的限制

通过反射操作属性

设置值:


如果是私有的话,就要使用:

调用方法:


调用私有属性

反射的优点和缺点:

使用反射操作泛型


获取的是没有泛型的方式

如果想要获取像bb这种方法的,需要以下的方法

如果使用原本的方法,那么他只会获得:

却无法获得泛型内的值
使用以下方法:

把之前的type的方法改变,就可以变成

通过双重for循环,进行遍历出每一个类型对用的泛型:


反射突破泛型的限制



什么是反射,为什么要用反射,反射的知识讲解相关推荐

  1. java 反射 慢在那里_Java 反射到底慢在哪?

    反射具体是怎么影响性能的?这引起了我的反思. 是啊,在阐述某个观点时确实有必要说明原因,并且证明这个观点是对的,虽然反射影响性能人尽皆知,我曾经也真的研究过反射是否存在性能问题,但并没有在写文章的时候 ...

  2. java设计模——反射的应用 (利用反射来去除if判断语句)

    利用反射来去除if判断语句 我的以前写的一个查分系统,就是部长让我写的那个,使用一个分发器(函数),他会根据传递进来的字符串参数调用不同的方. If("add".equalsIgn ...

  3. c++ 反射_Java代码审计基础之反射

    先来一段反射的概念: 在程序运行的时候动态装载类,查看类的信息,生成对象,或操作生成对象. 类在运行的时候,可以得到该类的信息,并且可以动态的修改这些信息 反射类的首要操作 - 获取类 获取类有 三种 ...

  4. 漫反射 高光反射_如何有效地使用反射

    漫反射 高光反射 本文是我们名为" 高级Java "的学院课程的一部分. 本课程旨在帮助您最有效地使用Java. 它讨论了高级主题,包括对象创建,并发,序列化,反射等. 它将指导您 ...

  5. java 反射 new class_Java高级特性-反射:不写死在代码,还怎么 new 对象?

    反射是 Java 的一个高级特性,大量用在各种开源框架上. 在开源框架中,往往以同一套算法,来应对不同的数据结构.比如,Spring 的依赖注入,我们不用自己 new 对象了,这工作交给 Spring ...

  6. 反射 数据类型_Java基础:反射机制详解

    一.什么是反射: (1)Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法.本质是JVM得到class对象之后,再通过class对象进行反编译,从而获取t对 ...

  7. 如何优化java反射,如何有效地使用Java反射

    反射是一种内置机制,用于在执行时对Java程序进行内省.它可以用来检查.修改和转换Java程序,而不会影响现有代码.这个强大的特性可以用来扩展程序的功能,在运行时检查类或对象的内部结构.本文试图探究其 ...

  8. java反射 enum参数_CookBook/3-Java反射.md at master · Byron4j/CookBook · GitHub

    Java核心(三)反射 Java反射给我们提供了在运行时检查甚至修改应用行为的机制. 反射是java高级的核心技术,所有有经验的程序员都应该理解. 通过反射机制,我们可以在运行时检视 类.接口.枚举, ...

  9. java getinstance 反射_Java 基础篇之反射

    使用反射获取程序运行时的对象和类的真实信息. 获取 Class 对象 每个类被加载之后,系统会为该类生成一个对应的 Class 对象,通过该 Class 对象可以访问到 JVM 中的这个类. 使用 C ...

  10. java反射消耗性能吗_JAVA反射会降低你的程序性能吗?

    早两天写了<从把三千行代码重构成15行代码谈起>这篇文章,看到评论中有一些同学的回复还是在质疑反射的性能,好像程序用上了反射,就像开上了拖拉机似的.本来我觉得这个话题没有什么好讨论的了,网 ...

最新文章

  1. Chameleon跨端框架——壹个理想主义团队的开源作品
  2. 跟锦数学2017年04月
  3. python hashlib 哈希算法
  4. C语言上证指数运行源码,个股对比上证指数公式源码
  5. 树莓派外设开发基础(wiringPi库)
  6. r语言error in match.fun(fun) :_Go语言200行写区块链源代码分析
  7. Sword pcre库函数学习三
  8. 云计算实战系列十四(MySQL基础)
  9. android 多线程 加锁,android 多线程 — 从一个小例子再次品位多线程
  10. vue中使用kindeditor编辑器_Vue中使用wangEditor富文本编辑器(示例代码)
  11. iOS源码分析:Block的本质
  12. 利用shrinkwrap锁定依赖版本
  13. opencv入手小训——画立体图形
  14. Springboot2.6+thymeleaf实现png和jpg图片格式转换
  15. linux下调试域格CLM920 NC5 pppd拨号
  16. (C语言)signed和unsigned类型转化
  17. 【唐诗学习】四、边塞诗派代表
  18. kettle快速连接clickhouse
  19. 电子计算机制作探测,金属探测器DIY,你真正了解过多少?
  20. [精选网址]MSDN简体中文在线

热门文章

  1. ZStack实践汇 | 详解ZStack高级功能--裸金属服务部署实践
  2. 【优化算法】闪电连接过程优化算法(LAPO)【含Matlab源码 1444期】
  3. 【语音识别】基于matlab GUI HMM中文语音识别【含Matlab源码 1385期】
  4. 【图像评价】基于matlab GUI图像客观评价【含Matlab源码 855期】
  5. torch.nn.parallel.DistributedDataParallel使用中卡在第一个epoch的原因之一
  6. Java单链表中的元素互换位置_Java如何在链表的第一个和最后一个位置添加一个元素?...
  7. matlab 流水灯,Matlab生成stm32代码
  8. Syntax error: Bad for loop variable
  9. fatal error: libmemcached/memcached.h: No such file or directory
  10. php 字符串截掉前两位,如何在PHP的前20个单词中截断字符串?