java新手入门:Java反射机制(三)

文章作者 100test 发表时间 2007:03:14 16:49:07
来源 100Test.Com百考试题网


执行结果(例):
public class LinkedList
图5-3:找出class或interface 的名称,及其属性(modifiers)。

#001 TypeVariable[] tv.
#002 tv = c.getTypeParameters(). //warning: unchecked conversion
#003 for (int i = 0. i < tv.length. i ) {
#004 x = tName(tv[i].getName(), null). //例如 E,K,V...
#005 if (i == 0) //第一个
#006 System.out.print("<" x).
#007 else //非第一个
#008 System.out.print("," x).
#009 if (i == tv.length-1) //最后一个
#010 System.out.println(">").
#011 }

执行结果(例):
public abstract interface Map
或 public class LinkedList
图5-4:找出parameterized types 的名称

#001 Class supClass.
#002 supClass = c.getSuperclass().
#003 if (supClass != null) //如果有super class
#004 System.out.print(" extends"
#005 tName(supClass.getName(),classRef)).

执行结果(例):
public class LinkedList
extends AbstractSequentialList,
图5-5:找出base class。执行结果多出一个不该有的逗号于尾端。此非本处重点,为简化计,不多做处理。

#001 Class cc[].
#002 Class ctmp.
#003 //找出所有被实现的interfaces
#004 cc = c.getInterfaces().
#005 if (cc.length != 0)
#006 System.out.print(", \r\n" " implements "). //关键词
#007 for (Class cite : cc) //JDK1.5 新式循环写法
#008 System.out.print(tName(cite.getName(), null) ", ").

执行结果(例):
public class LinkedList
extends AbstractSequentialList,
implements List, Queue, Cloneable, Serializable,
图5-6:找出implemented interfaces。执行结果多出一个不该有的逗号于尾端。此非本处重点,为简化计,不多做处理。

#001 cc = c.getDeclaredClasses(). //找出inner classes
#002 for (Class cite : cc)
#003 System.out.println(tName(cite.getName(), null)).
#004
#005 ctmp = c.getDeclaringClass(). //找出outer classes
#006 if (ctmp != null)
#007 System.out.println(ctmp.getName()).

相关文章


基础入门:JAVA初学的一些技巧
在Java中动态执行类的静态方法
java新手入门:Java反射机制(三)
java新手入门:Java反射机制(二)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛