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

反射简述

  • 什么是反射
  • 反射在java中起到什么样的作用
  • 获取class对象的三种方式
  • 反射的优缺点

什么是反射

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

简单来说,就是给你一个类,你就能通过反射的机制获取里面的东西
举个例子:姐姐告诉你她要结婚了,并告诉了你时间和地点,其它的你什么都不知道,但是你可以在那个时间去参加姐姐的婚礼,从而知道摆了几桌、新郎长什么样、伴娘有哪些,这就相当于反射(通过时间地点反射出其它的信息),在这个例子中,时间和地点相当于类,而我们可以通过反射的机制得到这个类里面的 摆了几桌、新郎长什么样、伴娘有哪些

反射在java中起到什么样的作用

java的反射作用的地方有很多,比如注解中也有广泛的运用,而且和注解强相关的一些框架如spring中使用的也非常频繁,通过反射获取执行的类然后生成类实例只是反射中一部分的作用而已;反射的理念有点像是一种代理,本身真实的对象并不需要显性的露面,也有点像IOC,把需要执行的动作交给调用方,不是自己把所有类都加载完毕,然后挑某一个执行,而是调用方法想执行哪一个类,就去加载该类,然后再执行

获取class对象的三种方式

  • 类名.class属性

  • 对象名.getClass()方法

  • Class.forName(全类名)方法

反射的优缺点

优点

  • 增加程序的灵活性,避免将固有逻辑写死
  • 代码简洁,可读性强,可提高代码的复用率

缺点

  • 相比较于直接调用,在访问量较大的情况下,反射会导致系统性能明显下降
  • 打破了类的封装性,存在一定的安全隐患

在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/102490.html

相关文章:

  • Kotlin泛型的协变与逆变
  • 【后端面经】微服务构架 (1-6) | 隔离:如何确保心悦会员体验无忧?唱响隔离的鸣奏曲!
  • 复习之kickstart无人职守安装脚本
  • CSS动画——实现波浪摇摆效果...
  • 【MyBatis学习】Spring Boot(SSM)单元测试,不用打包就可以测试我们的项目了,判断程序是否满足需求变得如此简单 ? ? ?
  • JavaScript 类
  • SpringBoot的static静态资源访问、参数配置、代码自定义访问规则
  • IO进、线程——线程(线程的创建、线程的退出、线程的回收、线程的分离和多线程并发编程)
  • neo4j教程-Cypher操作
  • 秋招算法备战第31天 | 贪心算法理论基础、455.分发饼干、376. 摆动序列、53. 最大子序和
  • 页面生成图片或PDF node-egg
  • go常用知识点
  • ComPDFKit PDF SDK(支持Web、Android、IOS、Windows、Server、API、跨平台)
  • 使用maven容器打包java项目
  • 超前端相关的学习网站和一些靠谱的小工具
  • uniapp跳转到外部链接
  • 初识DBT以及搭建第一个DBT工程
  • Python基于PyTorch实现卷积神经网络回归模型(CNN回归算法)项目实战
  • (AcWing)集合-Nim游戏
  • ConcurrentHashMap源码详解
  • 医疗流程自动化盛行,RPA成为医疗保健行业的重点应用技术
  • Java 版 spring cloud + spring boot 工程系统管理 工程项目管理系统源码 工程项目各模块及其功能点清单
  • java重试机制实现方案
  • 参数量仅有50KB的超轻量级unet变种网络egeunet【参数和计算量降低494和160倍】医疗图像分割实践
  • Android10 Settings系列(三)根据需求动态添加删除一级菜单、二级菜单的设置项
  • 51单片机——串行口通信
  • 洛谷题单 Part 6.7.1 矩阵
  • Spring中c3p0与dbcp配置
  • Flutter 添加 example流程
  • 数据治理8种方法