- 浏览: 123925 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
hanyuanbo:
多谢啦不过你这里有关于字符串的连接机制么?比如:String ...
栈(stack)与堆(heap)区别以及Java的string变量赋值的内部工作机制(精典转载贴) -
only_java:
不错不错,但是好像没有关于字符流的介绍哦?
[转]Java IO 技术之基本流类 ~~~~~~~~ (图+讲解+代码) 好好看 有好处 -
lvwz2008:
比较简单,学习了也受益不少!
栈(stack)与堆(heap)区别以及Java的string变量赋值的内部工作机制(精典转载贴) -
306781704:
看了你写的东西,很不错,基础的很详细
META元素使用详解 -
yihengliu:
总结的完全,有大帮助!
JSP内置对象详解1
#001 cc = c.getDeclaredClasses(); //找出inner classes<o:p></o:p>
#002 for (Class cite : cc)<o:p></o:p>
#003 System.out.println(tName(cite.getName(), null));<o:p></o:p>
#004<o:p></o:p>
#005 ctmp = c.getDeclaringClass(); //找出outer classes<o:p></o:p>
#006 if (ctmp != null)<o:p></o:p>
#007 System.out.println(ctmp.getName());<o:p></o:p>
<o:p> </o:p>
执行结果(例):<o:p></o:p>
LinkedList$Entry<o:p></o:p>
LinkedList$ListItr<o:p></o:p>
图5-7:找出inner classes 和outer class<o:p></o:p>
<o:p> </o:p>
#001 Constructor cn[];<o:p></o:p>
#002 cn = c.getDeclaredConstructors();<o:p></o:p>
#003 for (int i = 0; i < cn.length; i++) {<o:p></o:p>
#004 int md = cn[i].getModifiers();<o:p></o:p>
#005 System.out.print(" " + Modifier.toString(md) + " " +<o:p></o:p>
#006 cn[i].getName());<o:p></o:p>
#007 Class cx[] = cn[i].getParameterTypes();<o:p></o:p>
#008 System.out.print("(");<o:p></o:p>
#009 for (int j = 0; j < cx.length; j++) {<o:p></o:p>
#010 System.out.print(tName(cx[j].getName(), null));<o:p></o:p>
#011 if (j < (cx.length - 1)) System.out.print(", ");<o:p></o:p>
#012 }<o:p></o:p>
#013 System.out.print(")");<o:p></o:p>
#014 }<o:p></o:p>
<o:p> </o:p>
执行结果(例):<o:p></o:p>
public java.util.LinkedList(Collection)<o:p></o:p>
public java.util.LinkedList()<o:p></o:p>
图5<st1:chmetcnv w:st="on" tcsc="0" numbertype="1" negative="True" hasspace="False" sourcevalue="8" unitname="a">-8a</st1:chmetcnv>:找出所有constructors<o:p></o:p>
<o:p> </o:p>
#004 System.out.println(cn[i].toGenericString());<o:p></o:p>
<o:p> </o:p>
执行结果(例):<o:p></o:p>
public java.util.LinkedList(java.util.Collection<? extends E>)<o:p></o:p>
public java.util.LinkedList()<o:p></o:p>
图5-8b:找出所有constructors。本例在for 循环内使用toGenericString(),省事。<o:p></o:p>
<o:p> </o:p>
#001 Method mm[];<o:p></o:p>
#<st1:chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="True" sourcevalue="2" unitname="mm">002 mm</st1:chmetcnv> = c.getDeclaredMethods();<o:p></o:p>
#003 for (int i = 0; i < mm.length; i++) {<o:p></o:p>
#004 int md = mm[i].getModifiers();<o:p></o:p>
#005 System.out.print(" "+Modifier.toString(md)+" "+<o:p></o:p>
#006 tName(mm[i].getReturnType().getName(), null)+" "+<o:p></o:p>
#<st1:chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="7" unitname="mm">007 </st1:chmetcnv>mm[i].getName());<o:p></o:p>
#008 Class cx[] = mm[i].getParameterTypes();<o:p></o:p>
#009 System.out.print("(");<o:p></o:p>
#010 for (int j = 0; j < cx.length; j++) {<o:p></o:p>
#011 System.out.print(tName(cx[j].getName(), null));<o:p></o:p>
#012 if (j < (cx.length - 1)) System.out.print(", ");<o:p></o:p>
#013 }<o:p></o:p>
#014 System.out.print(")");<o:p></o:p>
#015 }<o:p></o:p>
<o:p> </o:p>
执行结果(例):<o:p></o:p>
public Object get(int)<o:p></o:p>
public int size()<o:p></o:p>
图5<st1:chmetcnv w:st="on" tcsc="0" numbertype="1" negative="True" hasspace="False" sourcevalue="9" unitname="a">-9a</st1:chmetcnv>:找出所有methods<o:p></o:p>
<o:p> </o:p>
#004 System.out.println(mm[i].toGenericString());<o:p></o:p>
<o:p> </o:p>
public E java.util.LinkedList.get(int)<o:p></o:p>
public int java.util.LinkedList.size()<o:p></o:p>
图5-9b:找出所有methods。本例在for 循环内使用toGenericString(),省事。<o:p></o:p>
<o:p> </o:p>
#001 Field ff[];<o:p></o:p>
#002 ff = c.getDeclaredFields();<o:p></o:p>
#003 for (int i = 0; i < ff.length; i++) {<o:p></o:p>
#004 int md = ff[i].getModifiers();<o:p></o:p>
#005 System.out.println(" "+Modifier.toString(md)+" "+<o:p></o:p>
#006 tName(ff[i].getType().getName(), null) +" "+<o:p></o:p>
#007 ff[i].getName()+";");<o:p></o:p>
#008 }<o:p></o:p>
<o:p> </o:p>
执行结果(例):<o:p></o:p>
private transient LinkedList$Entry header;<o:p></o:p>
private transient int size;<o:p></o:p>
图5<st1:chmetcnv w:st="on" tcsc="0" numbertype="1" negative="True" hasspace="False" sourcevalue="10" unitname="a">-10a</st1:chmetcnv>:找出所有fields<o:p></o:p>
<o:p> </o:p>
#004 System.out.println("G: " + ff[i].toGenericString());<o:p></o:p>
<o:p> </o:p>
private transient java.util.LinkedList.java.util.LinkedList$Entry<E> ??<o:p></o:p>
java.util.LinkedList.header<o:p></o:p>
private transient int java.util.LinkedList.size<o:p></o:p>
图5-10b:找出所有fields。本例在for 循环内使用toGenericString(),省事。<o:p></o:p>
<o:p> </o:p>
找出class参用(导入)的所有classes<o:p></o:p>
没有直接可用的Reflection API可以为我们找出某个class参用的所有其它classes。要获得这项信息,必须做苦工,一步一脚印逐一记录。我们必须观察所有fields的类型、所有methods(包括constructors)的参数类型和回返类型,剔除重复,留下唯一。这正是为什么图5-2程序代码要为tName()指定一个hashtable(而非一个null)做为第二自变量的缘故:hashtable可为我们储存元素(本例为字符串),又保证不重复。<o:p></o:p>
<o:p> </o:p>
本文讨论至此,几乎可以还原一个class的原貌(唯有methods 和ctors的定义无法取得)。接下来讨论Reflection 的另三个动态性质:(1) 运行时生成instances,(2) 执<o:p></o:p>
行期唤起methods,(3) 运行时改动fields
发表评论
-
中文乱码问题的解决方法
2007-11-05 22:46 2001tomcat下中文的彻底解决[转] http://blog ... -
候捷谈Java反射机制(6)
2007-11-05 22:44 1411Java 源码改动办法<o:p></o:p ... -
候捷谈Java反射机制(5)
2007-11-05 22:43 1051运行时生成instances<o:p></o ... -
候捷谈Java反射机制(3)
2007-11-05 22:40 1045Java Reflection API 运用示例<o: ... -
候捷谈Java反射机制(2)
2007-11-05 22:39 976Java classes 组成分析<o:p>&l ... -
候捷谈Java反射机制(1)
2007-11-05 22:28 1571关于本文:<o:p></o:p> 读者 ... -
J2SE API读取Properties文件六种方法
2007-11-05 22:23 9841。使用java.util.Properti ... -
Java 调用存储过程
2007-11-05 22:21 847本文阐述了怎 ... -
JavaMail API细节详细解析大全
2007-11-05 22:16 1062一、JavaMail API简介 JavaMail API ... -
JAVA中正则表达式应用
2007-11-05 22:12 7861.简介: java.util.regex ... -
Java正则表达式详解
2007-11-05 22:08 754如果你曾经用过Perl或任何其他内建正则表达 ... -
JDBC 4.0 API
2007-11-05 21:55 950???? -
JDBC 3.0 API (扩展部分)
2007-11-05 21:54 1150Ø ConnectionPoo ... -
JDBC 2.0 API
2007-11-05 17:19 932JDBC 2.0 API被划 ... -
开发基于JNDI的应用程序3
2007-11-05 16:18 1696JNDI 的DNS 服务提供程序 DNS服务提供程序使得基于 ... -
开发基于JNDI的应用程序2
2007-11-05 16:14 1291示例代码 2 Resolve2.java ... -
开发基于JNDI的应用程序1
2007-11-05 16:06 1013Java命名和目录接口(Java Naming and ... -
struts+spring+hibernate的web应用(4.6)
2007-10-25 11:35 901product_success.jsp页面代码: ... -
struts+spring+hibernate的web应用(4.5)
2007-10-25 11:32 1056addproduct.jsp页面代码: &l ... -
struts+spring+hibernate的web应用(4.4)
2007-10-25 11:11 971接着就是写资源文件了。 在com.game.resource ...
相关推荐
候捷谈Java反射机制 有助深入理解Java新特性
Reflection in Java. 介绍Java中的反射机制,候捷谈Java反射机制
java反射机制java反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制...
Java反射机制Java反射机制Java反射机制Java反射机制Java反射机制Java反射机制Java反射机制Java反射机制
JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用
java反射机制原理和反射机制总结!!! java反射机制原理和反射机制总结!!!
反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc...
java反射机制源码java反射机制源码java反射机制源码
Java反射机制Java反射机制Java反射机制Java反射机制
描述JAVA反射机制应用、举例。描述反射机制的具体实现及方法实现。
Java 反射机制 代码的实例 请认真阅读 运行此代码 只要读懂了 反射机制也就明白了
java反射机制和动态代理的原理,熟悉反射机制和动态代理
Java反射机制的实现_Reflection,适合学习了解反射机制。
java 反射机制深入理解,java 反射机制深入理解,java 反射机制深入理解,
Java 反射机制、Java 的类反射机制、Java 反射机制的学习、Java 反射Reflection--运行时生成实例 java反射机制的手册文档
这是一本关于Java反射机制论文集合的书。其中包含基本的理论及各种实例。... 关键字有:Java Java反射机制 Java反射 Java反射理论 Java反射实例 Java反射例子 反射原理 反射 网络论文 集合 汇总 总结 Class。
Java反射机制总结(实例分析) Java反射机制学习笔记
Java中的反射机制Java中的反射机制Java中的反射机制