为了账号安全,请及时绑定邮箱和手机立即绑定

反射——Java高级开发必须懂的

难度入门
时长 1小时20分
学习人数
综合评分9.67
760人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
在android开发中经常通过反射调用private的方法
收获很大,感谢老师的精彩讲解
深入浅出,知微见著,这种引导式教学太难得。这种理论性比较强的一下子就能看出老师水平,思路非常清晰。好!
看完了,是不是少点什么

最新回答 / JonDai
首先,如果一个方法没有返回值的话那么该方法返回的类型应该是void’然后,你需要理解一下类和对象的区别。如果构造方法中对name属性赋值了,那么该getName()方法就不会为空,反之则为null

最赞回答 / Jack___
args[0]代表获取args数组的第一个元素,Class.forName();这个可以查找一下API,forName()这个方法放置的是某个类的具体存放位置,比如我把project.java放在Work这个包里面,那么args[0]应该就是Work.project。个人见解,仅供交流。
我想说,这就完结了?
看不懂。。。多看几遍试试。。
String类的字节码,厉害。佩服
class 通过类名 getClass() 通过对象 class.forName() 通过类的地址
.getMethods()获取 所有的public类型的方法
.getDeclaredMethods()获取类本身的所有方法
这个讲的还是非常不错的,对学习spring的底层有很大的帮助,以后学架构方面的,java的反射就必须要学好
如果你想获得自己声明的方法请使用getDeclaredMethods()
两个阶段,一个是编译期,另一个是运行期。
这段代码就等价于下面两行代码
OfficeAble oa = new OfficeAble();oa.start();
//动态获取类的信息,args[0]为你所输入的参数,比如:java Test OfficeAble,OfficeAble就是你所输入的第一个参数,后面也可以接着输入
Class c = Class.forName(args[0]);
//第二行就是利用运行期所获得的类的信息来创建对象,就相当于
OfficeAble oa = new OfficeAble();
//第三行,就相当于调用这个对象的一个方法,这个对象可能是一个线程。
醍醐灌顶!
课程须知
童鞋们,学习本课程前需要熟悉Java面向对象的思想,并能掌握Java IO输入输出流、集合和泛型等知识。可参考慕课网Java入门的一、二、三季以及我的文件我做主——Java IO流课程。
老师告诉你能学到什么?
1、能够理解并应用反射机制。 2、能够了解反射机制在集合泛型中的应用。 3、有利于更好的学习框架等Java高级技术。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消