反射(通过反射写一个通用的设置某个对象的某个属性为指定的值)
2016-07-16 23:37
615 查看
package com.sanmao10; public class test_value { /** * 反射(通过反射写一个通用的设置某个对象的某个属性为指定的值) * A:案例演示 * public void setProperty(Object obj, String propertyName, Object value){} * ,此方法可将obj对象中名为propertyName的属性的值设置为value。*/ public static void main(String[] args) throws Exception{ Student student=new Student("三毛");//Student{name='三毛'} System.out.println(student); tool t=new tool(); t.setProperty(student,"name","永超");//Student{name='永超'} System.out.println(student); } } class Student{ private String name; public Student() { } public Student(String name) { this.name = name; } public void setName(String name) { this.name = name; } public String getName() { return name; } @Override public String toString() { return "Student{" + "name='" + name + '\'' + '}'; } } package com.sanmao10; import java.lang.reflect.Field; public class tool { /** * 此方法可将obj对象中名为propertyName的属性的值设置为value。*/ public void setProperty(Object obj, String propertyName, Object value)throws Exception{ Class clazz=obj.getClass(); //获取字节码对象 Field field=clazz.getDeclaredField(propertyName); //暴力反射获取字段 field.setAccessible(true); //设置访问权限 field.set(obj,value); //设置值 } }
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- android string.xml文件中的整型和string型代替
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- Python动态类型的学习---引用的理解
- android上改变listView的选中颜色
- String.intern
- 土人系列AS入门教程 -- 对象篇
- Prototype源码浅析 String部分(二)
- Ruby中的String对象学习笔记
- C#托管堆对象实例包含内容分析
- Redis02 使用Redis数据库(String类型)全面解析
- C#中struct和class的区别详解
- C#实现获取不同对象中名称相同属性的方法
- javascript asp教程第十一课--Application 对象
- PostgreSQL ERROR: invalid escape string 解决办法
- PowerShell中使用Out-String命令把对象转换成字符串输出的例子
- VBS ArrayList Class vbs中的数组类
- VBS教程:对象-正则表达式(RegExp)对象
- 大家看了就明白了css样式中类class与标识id选择符的区别小结