PropertyDescriptor 详解
来源:互联网 发布:淘宝好评怎么看不到 编辑:程序博客网 时间:2024/05/16 20:30
PropertyDescriptor 详解](http://blog.csdn.net/z69183787/article/details/8443777)
转自 http://blog.csdn.net/z69183787/article/details/8443777
package com.zhoushun;import java.lang.reflect.Method;import java.lang.reflect.Field;import java.beans.PropertyDescriptor;public class PropertyUtil { @SuppressWarnings("unchecked") public static PropertyDescriptor getPropertyDescriptor(Class clazz, String propertyName) { StringBuffer sb = new StringBuffer();//构建一个可变字符串用来构建方法名称 Method setMethod = null; Method getMethod = null; PropertyDescriptor pd = null; try { Field f = clazz.getDeclaredField(propertyName);//根据字段名来获取字段 if (f!= null) { //构建方法的后缀 String methodEnd = propertyName.substring(0, 1).toUpperCase() + propertyName.substring(1); sb.append("set" + methodEnd);//构建set方法 setMethod = clazz.getDeclaredMethod(sb.toString(), new Class[]{ f.getType() }); sb.delete(0, sb.length());//清空整个可变字符串 sb.append("get" + methodEnd);//构建get方法 //构建get 方法 getMethod = clazz.getDeclaredMethod(sb.toString(), new Class[]{ }); //构建一个属性描述器 把对应属性 propertyName 的 get 和 set 方法保存到属性描述器中 pd = new PropertyDescriptor(propertyName, getMethod, setMethod); } } catch (Exception ex) { ex.printStackTrace(); } return pd; } @SuppressWarnings("unchecked") public static void setProperty(Object obj,String propertyName,Object value){ Class clazz = obj.getClass();//获取对象的类型 PropertyDescriptor pd = getPropertyDescriptor(clazz,propertyName);//获取 clazz 类型中的 propertyName 的属性描述器 Method setMethod = pd.getWriteMethod();//从属性描述器中获取 set 方法 try { setMethod.invoke(obj, new Object[]{value});//调用 set 方法将传入的value值保存属性中去 }catch (Exception e){ e.printStackTrace(); } } @SuppressWarnings("unchecked") public static Object getProperty(Object obj, String propertyName){ Class clazz = obj.getClass();//获取对象的类型 PropertyDescriptor pd = getPropertyDescriptor(clazz,propertyName);//获取 clazz 类型中的 propertyName 的属性描述器 Method getMethod = pd.getReadMethod();//从属性描述器中获取 get 方法 Object value =null ; try { value = getMethod.invoke(clazz, new Object[]{});//调用方法获取方法的返回值 } catch (Exception e) { e.printStackTrace(); } return value;//返回值 }}
0 0
- PropertyDescriptor 详解
- PropertyDescriptor
- PropertyDescriptor 类
- PropertyDescriptor的使用
- JavaAPI之PropertyDescriptor
- propertyDescriptor.getReadMethod笔记
- PropertyDescriptor类 初接触
- Java中PropertyDescriptor用法
- 黑马程序员---PropertyDescriptor和BeansUtil
- JAVA内省JavaBean(Introspector、BeanInfo和PropertyDescriptor)
- PropertyDescriptor,BeanUtils,PropertyUtils对javabean的操作
- PropertyDescriptor获取javaBean的get set
- java中PropertyDescriptor的使用简介
- java PropertyDescriptor 应用及源码分析
- 【JavaEE】Java内省Introspector、PropertyDescriptor与JavaBean
- JAVA源码解析(6)-java.beans.PropertyDescriptor
- 对JAVA Bean使用PropertyDescriptor反射调用JAVA方法
- 通过PropertyDescriptor反映射调用set和get方法
- css hack
- Android自定义布局弹窗
- WCF、WebAPI、WCFREST、WebService之间的区别
- JavaSE学习笔记_10:Java多线程
- svg
- PropertyDescriptor 详解
- iOS开发必备HUD(透明指示层)
- Android 应用程序无缝设计
- 谁将了真话
- unity实现鼠标让物体绕世界Y轴旋转_C#
- Java即时通讯服务器及客户端设计
- Android 仿美团网,探索ListView的A-Z字母排序功能实现选择城市
- Android基础:button imageview
- JDNI数据源