当前位置:首页 > 编程问答 >

java反射机制常用吗

时间:已被671人关注

码农之家
java反射机制用得多吗

8小时36分钟前回答

反射是一种机制,工作中不是不用,而是大多数时候不需要你手写反射,一般都是封装好的框架,工具类,类库,直接给你调用的。

什么是反射? 在运行状态中,对于任意一个类,都能获取这个类的所有属性和方法;对于任意一个对象,都能调用它的任意一个方法或属性,这种动态获取的信息以及动态调用对象方法的功能称为Java的反射机制!

1、取决于你的程序场景 反射可以解决静态编译时不确定运行库是否有某个API的情况比如android开发时,一个系统API是4.0以上SDK才有的,但是你的程序需要在2.3以上版本运行那么如果你显式的直接调用这个API,那么就会编译不通过这时使用反射机制就可以绕过静态语言的编译时检查,等到运行时才做检查.可以认为是削弱系统耦合程度的一种方式所有的功能都是针对某些场景存在的,你遇到了就有用,遇不到就没用。

2、反射用的不多,大多数时候你用不上它。但:文件操作API也用的不多,但你有业务需求的时候没它不行;线程用的不多,但有时候没线程程序几乎跑不起来;LinkedList也用的不多,但在某些情况下它的效率要比ArrayList要高几十倍;TreeMap也用的不多,但有时候它能简化你的代码;接口(interface)也不是必须的,你可以不写interface完成几乎所有的功能;甚至,面向对象也不是必须的,你可以用过程式的代码完成别人用几十个类做的功能;知识学到了是自己的,何必搞得好像是被迫学习一样,有这个提问的时间都学完了。P.S. 补充一下:对于J2EE来说,Hibernate之类的ORM全都基于动态字节码和反射技术,Spring等IoC框架也基于动态代理(有时是动态字节码)和反射技术,各类流行的MVC也是Servlet+反射的实现。对于Android来说,其本身的Context.startActivity/sendBroadcast等都是基于反射,如Gson/Jackson等JSON-ORM都是基于反射,反射技术还能解决部分跨进程调用问题及系统hack。

3、反射是java语言的一个特性,它允程序在运行时(注意不是编译的时候)来进行自我检查并且对内部的成员进行操作。例如它允许一个java的类获取他所有的成员变量和方法并且显示出来。Java 的这一能力在实际应用中也许用得不是很多,但是在其它的程序设计语言中根本就不存在这一特性。例如,Pascal、C 或者 C++ 中就没有办法在程序中获得函数定义相关的信息。(来自Sun)

已被244人点赞
参考资料
Java开发手册 v1.5.0 华山版 立即下载
Java常用算法手册
Java常用算法手册 超清全书第3版

Java常用算法手册是程序设计的基础和灵魂,编程水平高低的集中体现。历经三次改版,销量达万册;完整源代码和配套视频与图书内容相辅相成。

立即下载
疯狂Java讲义
疯狂Java讲义 影印第4版

10年经典原创读物,覆盖Java 8、Java 9,第4版保持了前3版系统、全面、讲解浅显、细致的特性,全面新增介绍了Java 9的新特性,从解决问题的角度来介绍Java语言,欢迎下载

立即下载
21天学通Java
21天学通Java 第7版

21天学通Java(第7版) 是初学者学习Java编程语言的畅销经典教程,循序渐进地介绍了Java编程语言知识,并提供了丰富的实例和练习;同时全面涵盖了Java 8这一新标准以及与Android开发相关的Ja

立即下载
大话JAVA性能优化
大话JAVA性能优化 高清版

《大话Java性能优化》 主要提供Java性能调优方面的参考建议及经验交流。作者力求做到知识的综合传播,而不是仅仅只针对Java虚拟机调优进行讲解,另外力求每一章节都有实际的案例支撑。具

立即下载
Java多线程编程实战指南:核心篇
Java多线程编程实战指南:核心篇 超清影印版

Java多线程编程实战指南以基本概念、原理与方法为主线,辅以丰富的实战案例和生活化实例,从Java虚拟机、操作系统和硬件多个层次与角度出发,循序渐进介绍Java平台下的多线程编程核心技术及相关工具

立即下载
编写可靠的JavaScript代码
编写可靠的JavaScript代码 高清版

《编写可靠的JavaScript代码 测试驱动开发JavaScript商业软件》分为5个部分: 第Ⅰ部分奠定坚实的基础涵盖了软件工程的关键概念,例如SOLID和DRY原 则,还讨论了单元测试和测试驱动开发的优点。

立即下载

Copyright 2018-2020 www.xz577.com 码农之家

版权投诉 / 书籍推广 / 赞助:520161757@qq.com