*************************************************************************************************
2007/3/3 星期六
author: by Mircle_wang
title: reflect
qq:83529101
希望对大家有帮助,也欢迎交流 : 共同进步
**************************************************************************************************
src
Student
Teacher 被加载类
//
package src;
public class Student {
private Integer id;
private String name;
private Integer age;
private String email;
// id
public void setId(Integer id) {
this.id = id;
}
public Integer getId() {
return this.id;
}
// age
public void setAge(Integer age) {
this.age = age;
}
public Integer getAge() {
return age;
}
// name
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
// email
public void setEmail(String email) {
this.email = email;
}
public String getEmail() {
return email;
}
}
package src;
public class Teacher {
private Integer id;
private String name;
private Integer age;
// id
public void setId(Integer id) {
this.id = id;
}
public Integer getId() {
return id;
}
// name
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
// age
public void setAge(Integer age) {
this.age = age;
}
public Integer getAge() {
return age;
}
}
//
util
CallAnyMethod 反射类
///
package util;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class CallAnyMethod {
public static void convert(String className, Object classNameobj,
Object[] para) throws ClassNotFoundException,
IllegalArgumentException, IllegalAccessException,
InvocationTargetException {
Class c = Class.forName(className);
Method[] methList = c.getDeclaredMethods();
System.out.println(c.getName());
for (int i = 0; i < methList.length; i++) {
// if((methList[i].getName().indexOf("get"))!=-1)
if (methList[i].getName().startsWith("get")) {
Object o = methList[i].invoke(classNameobj, para);
System.out
.println(methList[i].getName().substring(3) + ":" + o);
}
}
}
public static void convert(String className, Object classNameobj)
throws ClassNotFoundException, IllegalArgumentException,
IllegalAccessException, InvocationTargetException {
convert(className, classNameobj, null);
}
}
//
main
TestRef 验证类
//
package main;
import java.lang.reflect.InvocationTargetException;
import src.Student;
import src.Teacher;
import util.CallAnyMethod;
public class TestRef {
/**
* @param args
* @throws InstantiationException
*/
public static void main(String[] args) throws InstantiationException {
// TODO Auto-generated method stub
// student set
Student stu = new Student();
stu.setId(1);
stu.setAge(24);
stu.setName("张三");
stu.setEmail("ho@hotmail.com");
// teacher set
Teacher tec = new Teacher();
tec.setId(2);
tec.setAge(23);
tec.setName("李笑");
try {
CallAnyMethod.convert("src.Student", stu);
//System.out.println(Thread.currentThread().getName());
//System.out.println(Class.forName("src.Student").getName());
CallAnyMethod.convert("src.Teacher", tec);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//
运行结果:
src.Student
Age:24
Email:ho@hotmail.com
Name:张三
Id:1
src.Teacher
Age:23
Name:李笑
Id:2
//