反射和类加载器、模块化

类加载器

9116660d7e5344f2968d58648c34078c.png

反射

1.获取Class类的对象(该类的字节码文件对象)

返回的是该类文件所在的位置

be047651ad794f6ba26ac90b87ed633b.png

24f6a83744af4ec1a7ef3b819b5691d9.png

java的反射到底是有什么用处?怎么用? - 知乎 (zhihu.com)https://www.zhihu.com/question/377483107/answer/1079967402java的反射到底是有什么用处?怎么用? - 知乎 (zhihu.com)https://www.zhihu.com/question/377483107/answer/2402298107

2.反射获取构造方法,使用newInstance(......)创建对象a93ba9121e9c4c1d99c15d92e4115df8.png

 练习1

266f7ce5e9c5444aa35548374c18ae53.png508e70ad969f485297a2b7673f58e795.png

 练习2

702379fae23640d996c851ce1dd74988.png

40d0576b088045808eb55610257eb424.png

 3.反射获取成员变量(成员变量即字段)

b40cbbcfcd6241e48dcb413fb1bc0b37.png

 练习

18a4410d3c8a4a85bb115b5ea8012945.png

 4.反射获取成员方法

01704c1e97e94819ab1c8d2a14ada03e.png

 练习

d7138ed9c5ce4b979e8b4400ebacdd10.png

反射练习(反射可以越过泛型检查)

6aa7670b0bcc4978a76a69a08299ee6e.png

 invoke(obj,args):调用obj对象的成员方法,并且传入参数args

反射练习(通过配置文件,提高灵活性)

da138e6b411d41768c0b4c70b81c47e8.png

 模块化

1369a463dfaa415096b1aa6834997a2f.png

模块服务的使用(调用接口)

一个包1包含接口、以及接口的实现类;在另一个包2使用这个接口服务;可以通过修改包1的描述性文件中的服务实现类,实现不同的服务。

7129f8bea4ba4f5ea51aec804658ddc6.png

14ca0f2685024660811573afd9e7d2e5.png

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值