package cn.learn.test;import java.lang.reflect.Field;public class Tool {public void setProperty(Object obj, String propertyName, Object value)throws NoSuchFieldException, SecurityException,IllegalArgumentException, IllegalAccessException {// 根据对象获取字节码文件对象Class c = obj.getClass();// 获取该对象的propertyName成员变量Field field = c.getDeclaredField(propertyName);// 取消访问检查field.setAccessible(true);// 给对象的成员变量赋值为指定的值field.set(obj, value);}
}
package cn.learn.test;public class ToolDemo {public static void main(String[] args) throws NoSuchFieldException,SecurityException, IllegalArgumentException, IllegalAccessException {Person p = new Person();Tool t = new Tool();t.setProperty(p, "name", "林青霞");t.setProperty(p, "age", 27);System.out.println(p);System.out.println("-----------");Dog d = new Dog();t.setProperty(d, "sex", '男');t.setProperty(d, "price", 12.34f);System.out.println(d);}
}class Dog {char sex;float price;@Overridepublic String toString() {return sex + "---" + price;}
}class Person {private String name;public int age;@Overridepublic String toString() {return name + "---" + age;}
}

通过反射写一个通用的设置某个对象的某个属性为指定的值相关推荐

  1. 使用java反射写一个通用的jdbc查询

    在后端开发中,我们经常和数据库打交道.从最开始的使用jdbc进化到框架(mybatis)我们的开发效率提升了很多,但是不知道你没有思考过框架是如何在日常的开发中帮助我们的? 在我之前的博客中,讨论过 ...

  2. 写一个通用数据访问组件

    出处:http://www.csharp-corner.com willsound(翻译) 我收到过好多Email来问我如何用一个通用的数据提供者(data provider)在不失自然数据提供者(n ...

  3. java 通用组件_写一个通用数据访问组件

    出处:http://www.csharp-corner.comwillsound(翻译)我收到过数据库 出处:http://www.csharp-corner.com willsound(翻译) 我收 ...

  4. [js] 用js写一个方法检测浏览器是否支持css3的属性

    [js] 用js写一个方法检测浏览器是否支持css3的属性 var div = document.createElement('div'); console.log(div.style.transit ...

  5. 三种方法:写一个函数,每调用一次函数,就会将num的值增加1,&&可能遇到的问题

    写一个函数,每调用一次函数,就会将num的值增加1,以及可能遇到的问题 1.传址 int AddNumAddress(int *p) {return ++(*p); } int main() {int ...

  6. JS-事件-写一个通用的事件监听函数

    之前学习总是遇到问题再去研究表面知识,这是不可取的,在这里我们来写一个绑定事件的函数,以此巩固我们对JS事件相关知识点的理解 在这里我会解释一下各个参数之间的关系 function bindEvent ...

  7. 正则表达式限定长度_自己写一个通用的邮箱正则表达式

    今天把正则又复习了一遍,为了加深记忆,自己写一个邮箱的正则表达式 咱们先来看几个合法的邮箱地址 hd33322@nat123.com maksim.kim.82@d-link.ua vova_laza ...

  8. 正则邮箱_自己写一个通用的邮箱正则表达式

    今天把正则又复习了一遍,为了加深记忆,自己写一个邮箱的正则表达式 咱们先来看几个合法的邮箱地址 hd33322@nat123.com maksim.kim.82@d-link.ua vova_laza ...

  9. 用面向对象写一个通用爬虫模板

    面向对象的爬虫模板 前言 初衷 实现 先来一个最简单的爬虫类 给简单的类加点参数 重试的方法 异常处理 加上保存数据,完整的单线程爬虫 提速爬取 总结 前言 本文内容及代码仅供交流学习使用,如有不足之 ...

最新文章

  1. foreach_and_函数
  2. Java I/O 操作及优化建议
  3. 中国版“微软”要来了?某国产操作系统称已可以替代Windows 7
  4. 我们终于可以把 bug 留给子孙后代了
  5. qt通过代码创建滚动区域,添加滚动区域到窗口
  6. only 程序员的一个小总结
  7. SpringBoot 优雅的配置拦截器方式
  8. 盒子背景颜色(HTML、CSS)
  9. bagging和时间序列预测_Simple RNN时间序列预测
  10. JAVA实训心得体会(精选4篇)
  11. Efficient Diffusion Models for Vision: A Survey
  12. win7的附件计算机没了,win7系统附件工具不见了的解决方法
  13. 观点| 胡小明:不确定性环境下的智慧城市顶层设计
  14. 安徽科技学院 信网学院网络文化节 陈鑫鑫
  15. 识别到硬盘 计算机不显示盘符,移动硬盘不显示盘符怎么办
  16. 几个网站收录提交入口,让自己的博客被搜索引擎收录(最新版)
  17. 技术人的充电时刻,200分钟QA交流,尽在SDCC 2017·深圳站
  18. 计算机网络安全课程心得,学习信息安全专业的心得体会
  19. 2021年抖音0粉丝无货源直播带货最新技巧
  20. 关于谷歌浏览器加载不显示验证码的解决办法

热门文章

  1. 【Linux命令大全】
  2. 原生JS实现addClass,removeClass,toggleClass
  3. css3实现超出文本指定行数(指定文本长度)用省略号代替
  4. html、css 【珍藏】
  5. C#操作Excel的OLEDB方式与COM方式比较
  6. modbus3-关于Modicon Modbus Protocol和modscan32
  7. Statement和PreparedStatement深入学习总结
  8. 【洛谷 P2051】 [AHOI2009]中国象棋(DP)
  9. [ZOJ 4024] Peak
  10. Windows Mobile下C++取屏幕分辨率的方法