invoke()学习笔记

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();
}
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值