浏览 1364 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (12) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2007-11-14
下面提供了java反射中常用的一些API函数的使用。
首先看看Class,反射的核心类,所有的操作都是围绕该类来生成的,Class类十分的特殊,和其他的类一样继承与Object类,其实例用来表达java在运行时的classes和interface ,也用来表达enum、array、primitive Java types(boolean, byte, char, short, int, long, float, double)以及关键字void。当一個class被加载,或当类加载器(class loader)的defineClass()被JVM 调用,JVM 便自动的产生一個Class object实例。 获得Class的途径可以有以下几种: ------1. 运用getClass() 注:每个class 都有此函数 String str = "abc"; Class c1 = str.getClass(); ------2.运用etSuperclass() Class.getSuperclass(); Button b = new Button(); Class c1 = b.getClass(); Class c2 = c1.getSuperclass(); -----3. 运用static 方法 Class.forName() Class c1 = Class.forName ("java.lang.String"); Class c2 = Class.forName ("java.awt.Button"); Class c3 = Class.forName ("java.util.LinkedList$Entry"); Class c4 = Class.forName ("I"); Class c5 = Class.forName ("[I"); ------4. 运用 .class 語法 Class c1 = String.class; Class c2 = java.awt.Button.class; Class c3 = Main.InnerClass.class; Class c4 = int.class; Class c5 = int[].class; -----运用 primitive wrapper classes 的TYPE 语法 Class c1 = Boolean.TYPE; Class c2 = Byte.TYPE; Class c3 = Character.TYPE; Class c4 = Short.TYPE; Class c5 = Integer.TYPE; Class c6 = Long.TYPE; Class c7 = Float.TYPE; Class c8 = Double.TYPE; Class c9 = Void.TYPE; Java Reflection中常用的函数使用方法如下: java 代码
程序运行结果如下: java 代码
声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
| 返回顶楼 | |
|
时间:2008-01-27
最近做项目才发现自己对于反射几乎是一窍不通,急需恶补。
楼主有没有好的文章可以介绍一下?惭愧ing.... |
|
| 返回顶楼 | |
|
时间:2008-01-28
推荐一本Reflection In Action吧, 好像是04年的说, 内容不错, 平时用的不多, 但讲原理还是很有帮助的
|
|
| 返回顶楼 | |



