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();