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

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

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

已采纳回答 / HansonQ
因为要构造对象。任何类都有一个默认构造器。如果没有默认构造器就得反射出Controstor构造函数,接着在反射出参数,来实例化一个“未知”的对象

已采纳回答 / 卓戈卡奥
建议题主学一下设计模式,比如设计模式——工厂模式,这样就知道使用反射到底有多方便了

已采纳回答 / 阳少兮_s
以下所说的只是自己的理解。如果有不对的情况请大家指正我。一般情况下我们都会使用new Foo().print();这种情况下是我们肯定使用Foo的对象的时候我们会这么用。但是当我们需要在运行时才能确认哪个类的print方法时会用到反射。比如现在有个方法,根据我们传递的类名来调用方法public void print(String className) {  Class<?> c = Class.forName(className); ......}这样,只要你传入正确的类名,不仅能调用Foo类...

已采纳回答 / 黄凤翔
反射提高程序的灵活性和扩展性,低耦合。常用于系统架构和框架搭建。

最新回答 / 慕仔9151431
执行顺序不同,你可以用浏览器开发者工具按F12打断点进行查看,或者用你用while循环,或者从后向前删除uaesze

已采纳回答 / 好帮手慕珊
这个其实用不用静态方法都可以,这里面之所以使用静态方法,是觉得该方法就是一个常用的方法,不属于某个对象特别的行为。比如求数学绝对值的方法,Math.abs(9),这个abs方法就是一个静态方法,它就是求绝对值这样一个运算,一般我们把这种方法可以定义为静态。再举一个例子,Cat类,里面有一个eat()方法,指的是某个具体的Cat对象在eat(),这时就不适合使用静态方法了。

已采纳回答 / 偌颜宁
Java反射机制主要提供了以下功能:在运行时判定任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判定任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。

最赞回答 / 比利海灵顿
(thinking in java 4th p319)newInstance是实现虚拟 构造器的一种方法,(虚拟构造器:允许你不知道确切类型,但是你必须要正确的创造自己)而c1,c2,c3仅仅只是Class类的引用,编译器不具备任何更多信息,只有在创建新实例的时候会得到Object引用(注意 是Object引用),你要想用这个引用那你必须要向下转型啦,就是这里的强制类型转换。。

已采纳回答 / 好帮手慕珊
如果一个java文件只有一个类的时候,这个类可以不用public修饰,文件名就是类名。class前没有public默认是包访问权限,也就是这个类只能被同一个包中的类访问。当一个java文件中有多个类时,只能有一个类是public修饰,并且该类作为java文件的文件名。

已采纳回答 / 食物链顶端的男人
不是,这是java特有的一种语法机制。 我们通常所说的反编译一般是指的将一个可运行的库或程序还原到源代码的过程,也就是顾名思义的编译的逆过程
首页上一页123456下一页尾页
课程须知
童鞋们,学习本课程前需要熟悉Java面向对象的思想,并能掌握Java IO输入输出流、集合和泛型等知识。可参考慕课网Java入门的一、二、三季以及我的文件我做主——Java IO流课程。
老师告诉你能学到什么?
1、能够理解并应用反射机制。 2、能够了解反射机制在集合泛型中的应用。 3、有利于更好的学习框架等Java高级技术。

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消