/**
* 使用beanUtils工具包 需要导入第三方jar
* commons-beanutils-1.8.3.jar
* commons-logging-1.1.1.jar
*/
package com.sg.reflex.test; 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; import java.util.Iterator; import java.util.Map; import java.util.Set; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.PropertyUtils; import com.sg.bean.TestBeanReflex; public class TestNeiXing { public static void main(String[] args)throws Exception { TestBeanReflex br = new TestBeanReflex("2", "5"); String propertyName = "x"; String returnValue = getProperty(br, propertyName); System.out.println(returnValue); Object value = "3"; setProperty(br, propertyName, value); System.out.println(br.getX()); /** * 通过BeanUtils操作获取bean属性的值 可以自动将参数类型转换成bean类对应参数的类型 */ System.out.println(BeanUtils.getProperty(br, propertyName)); System.out.println(BeanUtils.getProperty(br, propertyName).getClass().getName());//java.lang.String /** * 通过BeanUtils这是bean属性的值 */ BeanUtils.setProperty(br, propertyName, "5"); System.out.println(br.getX()); /** * 通过BeanUtils操作bean属性的级联操作 */ BeanUtils.setProperty(br, "brithDay.time", "111"); System.out.println(BeanUtils.getProperty(br,"brithDay.time"));//结果111 /** * beanUtils将一个bean转换成一个map对象 */ Map map = BeanUtils.describe(br); /*Iterator iterator = map.entrySet().iterator(); while(iterator.hasNext()){ String key = (String)iterator.next(); map.get(key); } Set set = map.keySet(); for(Object object : set){ System.out.println("key : "+object + "value : " + map.get(object)); }*/ /** * PropertyUtils也具有同样的功能 但是参数值 要与bean的属性的类型一致 */ PropertyUtils.setProperty(br, "z", 9); System.out.println(BeanUtils.getProperty(br, "z"));// System.out.println(BeanUtils.getProperty(br, "z").getClass().getName());// } public static void setProperty(TestBeanReflex br, String propertyName, Object value) throws IntrospectionException, IllegalAccessException, InvocationTargetException { PropertyDescriptor descriptor = new PropertyDescriptor(propertyName, br.getClass()); Method method = descriptor.getWriteMethod(); method.invoke(br, value); } public static String getProperty(TestBeanReflex br, String propertyName) throws IntrospectionException, IllegalAccessException, InvocationTargetException { /*PropertyDescriptor descriptor = new PropertyDescriptor(propertyName, br.getClass()); Method method = descriptor.getReadMethod(); String returnValue = (String)method.invoke(br); return returnValue;*/ //第二种操作 //获取那个javaBean的所有信息 BeanInfo beanInfo = Introspector.getBeanInfo(br.getClass()); //获取那个javaBean的所有属性的信息 PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors(); String returnValue = null; //遍历所有的属性 for(PropertyDescriptor pd : pds){ //获取属性的名字 判断是否和传入的相等 if (pd.getName().equals(propertyName)) { //如果相等就获取它的get方法 Method method = pd.getReadMethod(); returnValue = (String)method.invoke(br); break; } } return returnValue; } }
相关推荐
beanUtils工具包是javabean操作类时用到的第三方jar包。提供良好的开发效率,和性能。
BeanUtils工具是一种方便我们对JavaBean进行操作的工具,是Apache组织下的产品。beanUtils 可以便于对javaBean的属性、对象进行赋值,beanUtils可以将一个MAP集合的数据拷贝到一个javabean对象中。
JavaBean和beanutils工具类的学习
commons-beanutils使用工具包
JAVA 开发 工具包BeanUtils , 用于对Bean进行操作处理的工具类
Commons-beanutils jar包,比较新希望对大家能有帮助
BeanUtils工具 .jar 包使用很简单 可以参考博客java学习笔记——javaweb之BeanUtils、EL、JSTL
BeanUtils-jar包 用于封装JavaBean的 JavaBean:标准的Java类
BeanUtils工具包是由Apache公司所开发,主要是方便程序员对Bean类能够进行简便的操作
Beanutils用了魔术般的反射技术,实现了很多夸张有用的功能,都是C/C++时代不敢想的。无论谁的项目,始终一天都会用得上它。我算是后知后觉了,第一回看到它的时候居然错过。 1.属性的动态getter,setter 2....
beanutils bean工具类 操作javabean 不费事 省的写反射
完美beanUtils 1.8 jar包与源码
BeanUtils是由Apache公司开发的针对操作JavaBean的工具包。 对于JavaBean,简单的来说,就是要有一个空参的构造器和对属性的getXXX方法和setXXX方法。 在由JDK提供的默认的API中,有java.beans包,里面有诸如...
NULL 博文链接:https://penghuaiyi.iteye.com/blog/1114850
commons-beanutils-1.8.3.jar commons-logging-1.1.1.jar
java枚举源码BeanUtils 这个 BeanUtils 库是一个 Java bean 复制实用程序,具有强大的功能和高性能。 Maven 使用 <groupId>com.github.yangtu222</groupId> <artifactId>BeanUtils <version>1.0.11 特征:...
commons-beanutils-1.8.0.jar beanutils.jar beanutils.jar工具包
BeanUtils的包BeanUtils的包BeanUtils的包BeanUtils的包BeanUtils的包BeanUtils的包BeanUtils的包BeanUtils的包BeanUtils的包
beanutils的包,可以用的哦~ 可以更加方便的操作javabean文件
用于封装表单数据BeanUtils