当前位置:编程学习 > JAVA >>

Java的反射机制是什么啊?什么时候用到呢?

Java的反射机制是什么啊?什么时候用到呢?
我在项目开发的时候好像没怎么看到有用啊? --------------------编程问答-------------------- 反射机制是什么,恐怕去Google会更清晰点。


用于某些模块集成场合。
当你不能在开发时即得到其目标类完整接口定义,只能根据命名规则去进行集成时。
并可以延伸到包装、动态代理等模式的应用中。
有时候也干些hack的事情,比如绕过private保护机制啥的。


用了Spring不?人家偷偷的到处用哦。 --------------------编程问答--------------------
引用 1 楼  的回复:
反射机制是什么,恐怕去Google会更清晰点。


用于某些模块集成场合。
当你不能在开发时即得到其目标类完整接口定义,只能根据命名规则去进行集成时。
并可以延伸到包装、动态代理等模式的应用中。
有时候也干些hack的事情,比如绕过private保护机制啥的。


用了Spring不?人家偷偷的到处用哦。

+1 --------------------编程问答-------------------- lz是女孩子。
java很多东西底层实现都是反射实现的,很多开源第三方框架也都用到了java的反射思想,比如spring等。 --------------------编程问答--------------------
引用 3 楼  的回复:
lz是女孩子。
java很多东西底层实现都是反射实现的,很多开源第三方框架也都用到了java的反射思想,比如spring等。

iisgirl  突然发现 you are a girl? --------------------编程问答-------------------- 不写一些底层的东西是一般情况下是用不到的,ssh这三个框架的实现基本上都用到了反射机制,不过了解了反射机制,有助于对理解这些框架的实现会深刻一些。 --------------------编程问答-------------------- 写框架用的。。。。一般程序员用不到 --------------------编程问答-------------------- 通过类的名称(一个字符串)去引用类的对象的一种方法,如:在jdbc中,sun只是定义了访问数据库的接口,但没有去实现他,接口的实现是由各数据库产家实现的,为了初始化数据库驱动需要使用下面的语句:
Class.forName("com.mysql.jdbc.Driver");//这里com.mysql.jdbc.Driver这个类事先不知道
又如:我们编写一个servlet网页,于是在web.xml中加入一个servlet配置:
<servlet>
    <servlet-name>test</servlet-name>
    <servlet-class>com.ldz.test.Test</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>test</servlet-name>
    <url-pattern>/test</url-pattern>
</servlet-mapping>
这时servlet容器(如tomcat)就要通过web.xml中的字符串"com.ldz.test.Test"去初始化Test这个类,这就是典型的反射调用。 --------------------编程问答-------------------- 感谢给位大侠 --------------------编程问答--------------------
引用 1 楼  的回复:
反射机制是什么,恐怕去Google会更清晰点。


用于某些模块集成场合。
当你不能在开发时即得到其目标类完整接口定义,只能根据命名规则去进行集成时。
并可以延伸到包装、动态代理等模式的应用中。
有时候也干些hack的事情,比如绕过private保护机制啥的。


用了Spring不?人家偷偷的到处用哦。
+ --------------------编程问答-------------------- 有没写过能用的dao?就是有些时候crud一些操作都是一样的,可以用反射写一个通用dao,之后通过继承来省去一些重复的操作,你可以试试 --------------------编程问答--------------------     反射机制,简单的来说是,java程序在运行期间,可以返回关于这个类的一些相关信息。例如:类型,类的成员方法和成员属性等基本信息。通过反射机制,可以更好的在其他类中使用这个类,重要的是可以,通过反射机制,可以动态的改变类,例如,使用过滤器,抓取目标类后,可以再该类运行之前,改变它的属性。变为新的类。
     
     --------------------编程问答-------------------- 动态加载机制! --------------------编程问答-------------------- 打个比方啊吧 ,一般我们调用对象 都是用new 一个对象。如果你的项目成规模。要调用的对象很多或很多方法需要掉同一个对象,这时候你总不能一个个new吧。你可以直接通过反射 通过java类得名字和方法的名字就可以获得该方法的返回数据。 --------------------编程问答-------------------- 写框架的时候会用到 --------------------编程问答-------------------- --------------------编程问答--------------------  你用JDBC就用到的反射机制啊      
--------------------编程问答-------------------- spring  ioc  就是基于jre的反射机制原理实现 --------------------编程问答-------------------- 还有吗 --------------------编程问答-------------------- 可以了解,你会学到很多东西 --------------------编程问答-------------------- java程序在运行期间,可以返回关于这个类的一些相关信息
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,