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

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

难度入门
时长 1小时20分
学习人数
综合评分9.67
760人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰

已采纳回答 / nave
假设是Hello类,先Class c = Hello.class获取类类型  Method[] mm = c.getMethods()或c.getDacledMethods();getMethods 获取所有public方法 包含继承所得getDacledMethods 获取本类自己声明的所有方法在for循环中迭代方法数组  for(int i = 0; i < mm.length; i++){Class[] paramType = mm[i].getParameterTypes(); //此处获取...

最新回答 / 慕码人400561
这个只是提醒不是错误,可以直接过。因为newInstance在jdk9之后就放弃不用了,所以会出现这个问题。

最赞回答 / 慕圣3285468
想要访问普通方法需要先创建对象,不可直接通过类名访问

最新回答 / 搬代码的程序猿
你代码里面的第一种创建方法写错了,直接用类来创建的话,就是Foo.class就行了,后面不要带括号。 用对象创建的话foo1.getClass()才需要带括号

最赞回答 / 慕沐3571032
个人感觉不是java中的类都是java.lang.Class的对象,而是每一个类都有一个隐藏的属性class,这个属性里封装了该类的所有信息,比如它的字段信息,方法信息等,我们可以通过类名.class或者对象名.getClass()或者Class的静态方法Class.forName()来获取到该隐藏的class属性,进而了解这个类的详细信息。

最赞回答 / jerry4013
因为c3会抛出异常。一个变量的声明一般要写在Try的外面,即使发生的异常,catch 之后的代码也能正常引用c3。catch后面的代码有可能会是检查c3是否为空之类的。总之,声明变量一般要写在try, catch 外面.

最赞回答 / 慕莱坞8174698
args 是 使用 命令行的参数列表 形如:  java  指定的程序名 参数 args[0]即 参数列表的 第一个参数 <...code...>

最新回答 / AcerYyzy
解决了,去获取class type的时候需要使用泛型如:Class<?> b = a.getClass();

最新回答 / 慕的地5111683
试了下,不传参数编译不通过,可以传类对象,也可以传一个null

最新回答 / 爆米不开花
要用动态加载,你这是静态加载去变异了,寻找不到
课程须知
童鞋们,学习本课程前需要熟悉Java面向对象的思想,并能掌握Java IO输入输出流、集合和泛型等知识。可参考慕课网Java入门的一、二、三季以及我的文件我做主——Java IO流课程。
老师告诉你能学到什么?
1、能够理解并应用反射机制。 2、能够了解反射机制在集合泛型中的应用。 3、有利于更好的学习框架等Java高级技术。

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消