`
liimuu
  • 浏览: 6956 次
  • 性别: Icon_minigender_1
  • 来自: 长春
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

invoke()学习笔记

阅读更多
1、Person.java:
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();
}
}
}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics