请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于Java反射

老师您好,我对于Java的反射原理还是有点迷茫。

想请问Java反射最主要的目的为何呢? (或是最具价值的实作为何?)

问题1. 反射是为了是满足"使用xml配置文件来实现动态语言的特性"?
问题2. 反射的目的是获取不同的类中的各种方法或属性,重新建构出一个新的类? (增加代码的复用)

问题1是我目前对于Java反射的应用的基本理解,而本次课程<6-4甚么是反射>看起来是透过问题2的方式来实现反射,但问题2获取一个类的方法也必须使用rc.newInstence来获取一个已经定义好的class结构,这里与直接new一个类有很大的区别吗?

并且应该有许多方式都可以做到与问题2相同的获取class方法来完成目标实现,那这个反射功能存在的必要性在哪呢?

正在回答

1回答

同学好,

问题1:满足xml配置只是其中之一,我理解最关键在于反射能够让我们更灵活去写出更通用的算法,试想如果想要动态地将某些实现类实例注入到接口里,而且是要在运行时候通过字面量传入,并设置一系列条件最终才选出某个类,这种方法要写得特别通用,通常就离不开反射了,一个很简单的例子,就是当代码出现很多if elseif之类的情况,就会变得难以维护,如果我们设置成一个hashMap形式,每个key对应一种策略实现类,这样就能封装这种if else的情况,简化代码。

问题2 同上,再补充一点,就是主要是更优雅去实现,因为很多实现方案都是编译时依靠硬编码来实现。

1 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信