大家谈谈对反射的理解

ai92 2004-11-17 11:06:56
rt
希望大家能把自己的理解贴出来。谢谢
...全文
252 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
drugon 2004-11-22
  • 打赏
  • 举报
回复
up
okitgo 2004-11-22
  • 打赏
  • 举报
回复
up
liusoft 2004-11-22
  • 打赏
  • 举报
回复
http://www.javayou.com/showlog.jspe?cat_id=-1&log_id=369
ai92 2004-11-22
  • 打赏
  • 举报
回复
UP
takecare 2004-11-17
  • 打赏
  • 举报
回复
在不知道源码,只有class的情况下。可以通过反射窥视其内部的情况。

工具类也常用反射,比如一个对象需要根据不同的成员类型复制到数据库里。
healer_kx 2004-11-17
  • 打赏
  • 举报
回复
反射是加载Servlet的关键所在,所以这是重要的动态方法。
catblue 2004-11-17
  • 打赏
  • 举报
回复
学了反射以后,就会让你理解 javabean的工作原理。

反射用在底层的开发比较多,写一些共通的方法,加快了开发速度
sgdb 2004-11-17
  • 打赏
  • 举报
回复
反射是很占系统资源的

所以不要滥用反射
cold_blooded 2004-11-17
  • 打赏
  • 举报
回复
Reflection 是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public, static 等等)、superclass(例如Object)、实现之interfaces(例如Cloneable),也包括fields和methods的所有信息,并可于运行时改变fields内容或唤起methods。
有时候我们说某个语言具有很强的动态性,有时候我们会区分动态和静态的不同技术与作法。我们朗朗上口动态绑定(dynamic binding)、动态链接(dynamic linking)、动态加载(dynamic loading)等。然而“动态”一词其实没有绝对而普遍适用的严格定义,有时候甚至像对象导向当初被导入编程领域一样,一人一把号,各吹各的调。

一般而言,开发者社群说到动态语言,大致认同的一个定义是:“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。

尽管在这样的定义与分类下Java不是动态语言,它却有着一个非常突出的动态相关机制:Reflection。这个字的意思是“反射、映象、倒影”,用在Java身上指的是我们可以于运行时加载、探知、使用编译期间完全未知的classes。换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体、或对其fields设值、或唤起其methods1。这种“看透class”的能力(the ability of the program to examine itself)被称为introspection(内省、内观、反省)。
ai92 2004-11-17
  • 打赏
  • 举报
回复
UP

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧