`
ahua186186
  • 浏览: 554039 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

PropertyDescriptor类通过反射机制实现对javabean属性值的操作

 
阅读更多
PropertyDescriptor类
PropertyDescriptor类表示JavaBean类通过存储器导出一个属性。主要方法:
1、getPropertyType(),获得属性的Class对象。
2、getReadMethod(),获得用于读取属性值的方法;getWriteMethod(),获得用于写入属性值的方法。
3、hashCode(),获取对象的哈希值。
4、setReadMethod(Method readMethod),设置用于读取属性值的方法;setWriteMethod(MethodwriteMethod),设置用于写入属性值的方法;
导包java.bean.*;
通过属性名获取对应的值,利用反射方法,如下:
ReflectPoint pt1 = new ReflectPoint(7,9);
String propertyName = "x";//给一个属性,获取值
PropertyDescriptor pd = new PropertyDescriptor(propertyName,pt1.getClass());
Method methodGetX = pd.getReadMethod();//Read对应get()方法
Object reValue = methodGetX.invoke(pt1);


给某个属性设置值,如下:
String propertyName2 = "y";//给一个属性,设置值
PropertyDescriptor pd2 = new PropertyDescriptor(propertyName2,pt1.getClass());
Method methodSetY = pd2.getWriteMethod();//Write对应set()方法
methodSetY.invoke(pt1,3);

通过这个原理可以实现map2Bean的操作。

分享到:
评论

相关推荐

    Java通过PropertyDescriptor反射调用set和get方法

    主要为大家详细介绍了Java通过PropertyDescriptor反射调用set和get方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    Java中的反射机制

    Java使用反射机制使用get set 方法 import java.beans.PropertyDescriptor; import java.lang.reflect.Field; import java.lang.reflect.Method; /** * */ /** * @ClassName: ReflectTest * @Description: ...

    beanutils-1.9.3-bin

    对于JavaBean,简单的来说,就是要有一个空参的构造器和对属性的getXXX方法和setXXX方法。 在由JDK提供的默认的API中,有java.beans包,里面有诸如Introspector,BeanInfo,PropertyDescriptor等用来操作JavaBean的...

    根据数据库表自动产生javabean

    PropertyDescriptor pd = new PropertyDescriptor(propertyName, clazz); Method mt = pd.getWriteMethod(); Type t [] = ms[i].getParameterTypes(); Object [] params = new Object[t.length]; for(int j...

    java基础类库文件rt.jar

    Java基础类库,也就是Java doc里面看到的所有的类的class文件。

    C# WinForm 利用NPOI 自定义[表头|列表|表尾]设计导出Execl格式源码【原创】【可直接运行】

    C# WinForm 工作中遇到一个需要将界面表格数据按照设定的格式[表头|...完整版还有自动反射字段中文名称方便客户自己编辑 时间匆忙就懒得分离代码上传 了 原理很简单 字段自定义属性[PropertyDescriptor] 然后反射就好了

    HibernateValidatorJSR303的参考实现使用指南.pdf

    2.3.2. 对一个类重定义其默认校验组 2.4. 内置的约束条件 2.4.1. Bean Validation constraints 2.4.2. Additional constraints 3. 创建自己的约束规则 3.1. 创建一个简单的约束条件 3.1.1. 约束标注 3.1.2. 约束校验...

    openbeans1.0.zip

    需要使用到java.beans.BeanInfo 等类,但是AS默认是没有这些类的,导致项目不能编译。使用openBeans.jar 方案能解决此问题。import 的包需要改一下。改成import com.googlecode.openbeans.BeanInfo。 解决

    从JavaScript属性描述器剖析Vue.js响应式视图

    对于对象内的属性,JavaScript提供了一个属性描述器接口PropertyDescriptor,大部分开发者并不需要直接使用它,但是很多框架和类库内部实现使用了它,如avalon.js,Vue.js,本篇介绍属性描述器及相关应用。...

    C# dataGridVeiw多维表头

    C#自定义控件,DataGridView多维表头.

    openbeans.rar

    在android studio 中无法使用 BeanInfo,IntrospectionException,Introspector, PropertyDescriptor 这些类,只需要导入这个jar 库就可以了。 只不过,要把java.beans.BeanInfo; 替换为 ...

    learnTS:TypeScript项目开发

    * @param propertyKey 元素名称 * @param descriptor 要应用装饰器的方法的描述符 */function Admin ( target : any , propertyKey : string | symbol , descriptor : PropertyDescriptor ) { let originalMethod = ...

    android-logging-log4j-1.0.2.jar

    PropertyDescriptor. Not all classes of this package are supported in Android. See javadoc of Android's java.beans package. There is a project called android-logging-log4j, which provides a ...

Global site tag (gtag.js) - Google Analytics