反射中的常见问题 [Java]

反射中的易错易混淆问题

1. 什么情况下使用反射

在实际的开发中, 我们通过直接new 的方式或者是通过反射的方式都可以调用公共的结构,那么我们到底要使用何种方式?
  • 首先我们要清楚: 大部分的情况之下我们都是使用new的方式来创建对象的
  • 但是如果遇到了编译期间不能确定造哪个类的对象,这个时候我们就要根据程序实际执行的情况来造对象 — 这个时候在这种 " 动态 " 的情况下我们就要使用反射的方式来创建对象
总结: 也就是我们编译期间确定不了的时候(在运行期间才能确定的时候),这个时候我们就要使用反射的方式来进行创建对象等等
使用反射的方式创建对象的实际情况举例

比如我们现在有一个客户端和一个服务器端,这个时候我们先让服务器端运行起来,在我们的服务器端运行起来之后我们让客户端运行起来,让我们的客户端向服务器端发送一个URL , 如果这个URL是要执行登录功能的, 那么这个时候我们就要创建相应的对象调用登录对应的方法,如果这个URL是要执行注册功能的,这个时候我们也是要创建相应的对象来调用注册的方法

总结:也就是"静态"用new , "动态"用反射

2.反射机制和面向对象中的封装性是否矛盾? 如何看待反射机制和封装性?

  • 首先反射机制和面向对象中的封装性是不矛盾的
  • 其次我们来说:
    • 封装性是将我们不建议去调用的属性封装起来,将我们可以调用的属性,设置为公共属性
      • 也就是封装性其实是对我们客户的一种"保护"
    • 反射是针对于能不能调用的问题,如果有的时候非要调用当然也是可以的,使用反射机制可以调用到任何对象所在类中的所有结构
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值