Java中反射是什么,有什么用?

面试官:什么是反射,为什么要用反射,举一个例子?

当问到这个问题,我的第一感觉是这个我懂,因为项目中用到好几次,但是让我真正讲的时候,问题就暴露出来了,有些东西你感觉你都知道,但是当让你讲给别人的时候你发现你很难讲明白,这其实就是在学习过程中只有输入没有输出,单纯的学东西,没有思考没有总结。
今天针对这个反射的问题做个总结;

1、什么是反射?

官方解释:

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

我理解的反射就是程序在运行时,可以根据类的全限定名称,动态地加载该类,创建对象,并可以调用该对象中地任意属性和方法。

2、为什么要用反射?
  • 在写代码地时候,如果我们使用了未定义的类,编译就会报错,Java地反射机制可以解决该问题。

  • 反射使得代码更具通用性和灵活性。

3、举一个例子:
  • 在我的项目中,通过反射加载各功能模块的操作界面,不使用反射机制通过代码也可以实现,但是问题是在代码中将程序写死,当你再想扩展功能的时候你必须修改之前的代码才可以实现,就会违背代码的设计的开闭原则—对扩展开放,对修改关闭。但是使用反射就完美的解决了这个问题,将按键对应的变量和其对应的类的全限定名称存放到数据库,在程序中从库中获取数据,对数据进行统一操作。扩展时只需要在数据库中对应位置添加写好的类的全限定名称即可。

总结:

  • 学习需要一个漫长的积累过程,温故而知新,知识长时间不回顾就会遗忘,著名的艾宾浩斯遗忘曲线也证明了这一点。
  • 有输出的学习才是真正的学习,不断总结,不断将知识转换成自己的东西并将其分享,相信我们会变得越来越好。
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值