background image

1.

public class DateMethodsTest      

2. {      
3.     public static void main(String args[]) throws Exception      
4.     {      
5.         // 加载并初始化命令行参数指定的类      
6.         Class<?> classType = Class.forName("java.util.Date");      
7.         // 获得类的所有方法      

8.

        Method methods[] = classType.getDeclaredMethods();      

9.

        for (int i = 

0

; i < methods.length; i++)      

10.         {      
11.             System.out.println(methods[i].toString());      
12.         }      
13.     }      
14. }    

 

例程 ReflectTester 类进一步演示了 Reflection API 的基本使用方法 。
ReflectTester 类有一个 copy(Object object)方法,这个方法能够创建一个
和参数 object 同样类型的对象,然后把 object 对象中的所有属性拷贝到新建
的对象中,并将它返回这个例子只能复制简单的 JavaBean,假定 JavaBean 
的每个属性都有 public 类型的 getXXX()和 setXXX()方法,代码如下:

Reflecttester.java

 

代码

1. public class ReflectTester {      

2.

    public Object copy(Object object) throws Exception {      

3.         // 获得对象的类型      
4.         Class<?> classType = object.getClass();      
5.         System.out.println("Class:" + classType.getName());      
6.      
7.         // 通过默认构造方法创建一个新的对象      

8.

        Object objectCopy = classType.getConstructor(new Class[] 
{}).newInstance(new Object[] {});      

9.      
10.         // 获得对象的所有属性      
11.         Field fields[] = classType.getDeclaredFields();      
12.      

13.

        for (int i = 

0

; i < fields.length; i++) {      

14.

            Field field = fields[i];      

15.      
16.             String fieldName = field.getName();      

17.

            String firstLetter = fieldName.substring(

0

1

).toUpperCa

se();