1、[b]Person.java:[/b]
package com.iteye.ibatis;
public class Person {
private Integer personId;
private String personName;
private Boolean personSex;
public Integer getPersonId() {
return personId;
}
public void setPersonId(Integer personId) {
this.personId = personId;
}
public String getPersonName() {
return personName;
}
public void setPersonName(String personName) {
this.personName = personName;
}
public Boolean getPersonSex() {
return personSex;
}
public void setPersonSex(Boolean personSex) {
this.personSex = personSex;
}
}
package com.iteye.ibatis;
import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
2、InvokeDemo.java
public class InvokeDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Class<?> clazz = null;
Object object = null;
PropertyDescriptor propertyDescriptor = null;
Person person = new Person();
String s;
try {
clazz = Class.forName("com.iteye.ibatis.Person");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Field[] fields = clazz.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
try {
propertyDescriptor = new PropertyDescriptor(
fields[i].getName(), clazz);
} catch (IntrospectionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Method writeMethod = propertyDescriptor.getWriteMethod();
s = fields[i].getType().getSimpleName();
if (s.equals("Integer"))
object = 1;
else if (s.equals("String"))
object = "liimuu";
else
object = true;
try {
writeMethod.invoke(person, object);
} catch (IllegalArgumentException 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();
}
}
for (int i = 0; i < fields.length; i++) {
try {
propertyDescriptor = new PropertyDescriptor(
fields[i].getName(), clazz);
} catch (IntrospectionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Method readMethod = propertyDescriptor.getReadMethod();
try {
System.out.println(readMethod.invoke(person, (Object[]) null));
} catch (IllegalArgumentException 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();
}
}
}
}
package com.iteye.ibatis;
public class Person {
private Integer personId;
private String personName;
private Boolean personSex;
public Integer getPersonId() {
return personId;
}
public void setPersonId(Integer personId) {
this.personId = personId;
}
public String getPersonName() {
return personName;
}
public void setPersonName(String personName) {
this.personName = personName;
}
public Boolean getPersonSex() {
return personSex;
}
public void setPersonSex(Boolean personSex) {
this.personSex = personSex;
}
}
package com.iteye.ibatis;
import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
2、InvokeDemo.java
public class InvokeDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Class<?> clazz = null;
Object object = null;
PropertyDescriptor propertyDescriptor = null;
Person person = new Person();
String s;
try {
clazz = Class.forName("com.iteye.ibatis.Person");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Field[] fields = clazz.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
try {
propertyDescriptor = new PropertyDescriptor(
fields[i].getName(), clazz);
} catch (IntrospectionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Method writeMethod = propertyDescriptor.getWriteMethod();
s = fields[i].getType().getSimpleName();
if (s.equals("Integer"))
object = 1;
else if (s.equals("String"))
object = "liimuu";
else
object = true;
try {
writeMethod.invoke(person, object);
} catch (IllegalArgumentException 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();
}
}
for (int i = 0; i < fields.length; i++) {
try {
propertyDescriptor = new PropertyDescriptor(
fields[i].getName(), clazz);
} catch (IntrospectionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Method readMethod = propertyDescriptor.getReadMethod();
try {
System.out.println(readMethod.invoke(person, (Object[]) null));
} catch (IllegalArgumentException 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();
}
}
}
}