JavaBean的简单内省操作

JDK中提供了对JavaBean进行操作的一些API,这套API就成为内省。

对JavaBean的简单内省操作:

import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class IntroSpectorTest {

	public static void main(String[] args) throws Exception{
		Person person = new Person("alex",24);
		String propertyName = "name";
		Object beanObj = person;
		Object setValue="zhuang";
		setPropertyValue(propertyName, beanObj, setValue);
		Object returnValue = getPropertyValue(propertyName, beanObj);
		System.out.println(returnValue);
	}

	public static void setPropertyValue(String propertyName, Object beanObj,
			Object setValue) throws IntrospectionException,
			IllegalAccessException, InvocationTargetException {
		PropertyDescriptor pd = new PropertyDescriptor(propertyName,beanObj.getClass());
		Method setPropertyValue = pd.getWriteMethod();
		setPropertyValue.invoke(beanObj, setValue);
	}

	public static Object getPropertyValue(String propertyName, Object beanObj)
			throws IntrospectionException, IllegalAccessException,
			InvocationTargetException {
		PropertyDescriptor pd = new PropertyDescriptor(propertyName,beanObj.getClass());
		Method getPropertyValue = pd.getReadMethod();
		Object returnValue = getPropertyValue.invoke(beanObj, null);		
		return returnValue;		
	}

输出结果为: zhuang

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值