java 反射 动态调动set_通过Java的反射动态调用类的set和get方法
方法一:
1 public static void main(String[] args) throws Exception {
2 Class clazz = Class.forName("TaskProvidePropsList");//这里的类名是全名。。有包的话要加上包名
3 Object obj = clazz.newInstance();
4 Field[] fields = clazz.getDeclaredFields();
5 //写数据
6 for(Field f : fields) {
7 PropertyDescriptor pd = new PropertyDescriptor(f.getName(), clazz);
8 Method wM = pd.getWriteMethod();//获得写方法
9 wM.invoke(obj, 2);//因为知道是int类型的属性,所以传个int过去就是了。。实际情况中需要判断下他的参数类型
10 }
11 //读数据
12 for(Field f : fields) {
13 PropertyDescriptor pd = new PropertyDescriptor(f.getName(), clazz);
14 Method rM = pd.getReadMethod();//获得读方法
15 Integer num = (Integer) rM.invoke(obj);//因为知道是int类型的属性,所以转换成integer就是了。。也可以不转换直接打印
16 System.out.println(num);
17 }
18 }
19 }
1 public static void getMethodDemo2() throws Exception {
2 Class clazz = Class.forName("com.itcast.day26.Person");
3 //Field field = clazz.getDeclaredField("name");
4 Object obj = clazz.newInstance();
5
6 PropertyDescriptor pd = new PropertyDescriptor("name", clazz);
7 Method get = pd.getReadMethod();
8 String name = (String)get.invoke(obj);
9 System.out.println(name);
10 }
方法二:
1 public Object getValue(Object dto,String name) throws Exception{
2 Method[] m = dto.getClass().getMethods();
3 for(inti=0;i
4 if(("get"+name).toLowerCase().equals(m[i].getName().toLowerCase())){
5 return m[i].invoke(dto);
6 }
7 }
来源:https://www.cnblogs.com/jason123/p/7092008.html
java 反射 动态调动set_通过Java的反射动态调用类的set和get方法相关推荐
- [转载] Java中使用new构造数组时会不会自动调用类的默认构造函数
参考链接: Java中的默认构造函数 今天做集合练习时,发现生成类的数组时并 不会自动调用类的默认构造函数 // 开辟10个内存空间,并指定了数组的类型为Gerbil // 这个时候并不会调用构造函数 ...
- 通过JAVA的反射调用类中的公有私有方法
文章来源http://lavasoft.blog.51cto.com/62575/61002及http://blog.csdn.net/sunyujia/article/details/2501709 ...
- java双缓存机制_详解JVM类加载机制及类缓存问题的处理方法
前言 大家应该都知道,当一个Java项目启动的时候,JVM会找到main方法,根据对象之间的调用来对class文件和所引用的jar包中的class文件进行加载(其步骤分为加载.验证.准备.解析.初始化 ...
- linux java运行class文件_jvm学习java文件运行过程
汇编 汇编的目的是把汇编语言转为机器语言. 链接 链接是要解决目标文件之间的互相依赖关系,当a文件中的aa方法中调用了b文件的bb方法时,在汇编完成后,a文件的bb方法并没有准确的内存地址,链接后会转 ...
- java标记错误_标记电子邮件Java时出错
在调用以下我的代码片段时: Message message_in = null; inbox instanceof IMAPFolder IMAPFolder f = (IMAPFolder)inbo ...
- 支撑Java框架的基础技术:泛型,反射,动态代理,cglib
以Spring为例要想看明白他的源码需要彻底理解Java的一些基础技术泛型,反射同时对于一些高级技术例如动态代理,cglib和字节码技术也需要掌握,下面就按章节来一一说清楚这些技术的核心部分,最后手写 ...
- java 反射动态修改数据类型_[Java-基础]反射_Class对象_动态操作
动态性 动态语言 在程序运行时,可以改变程序结构或变量类型,典型的语言: Python,ruby,javascript 如: function test(){ var s = "var a= ...
- java基础5:工厂模式、单例模式、File文件类、递归、IO流、Properties配置文件、网络编程、利用IO流模拟注册登录功能、关于反射、JDK动态代理
1.工厂模式 23种java设计模式之一 1)提供抽象类(基类) 2)提供一些子类,完成方法重写 3)提供一个接口:完成具体子类的实例化对象的创建,不能直接new子类,构造函数私有化. 优点:具体的子 ...
- 动态代理/spring IOC/JAVA反射机制
动态代理 代理的作用就是控制对象的访问权限: 首先我们需要写一个接口 这个就是代理接口 public interface Student { public void S1(); } 然后在写一个接口的 ...
- Java进阶(十四)单元测试、反射、注释、动态代理
十四.单元测试.反射.注释.动态代理 需要学会什么? 单元测试:开发好的系统中存在很多的方法,如何对这些方法的正确性进行测试. 反射:如何在程序运行时去得到Class对象,然后去获取Class中的每个 ...
最新文章
- 在vmware的Solaris虚拟机中安装vmtool
- Quzrtz 使用oracle集群无法正常启动问题解决
- Excel2003Training(1)-浅谈Excel的5个小技巧
- 中国煤化工行业运行现状与前景规划动向预测报告2022-2028年
- cacls文件服务器备份与恢复,实战安全设置WEB专用服务器技巧
- 第一、第二、第三范式之间的理解和比较(转载)
- python 发起HTTP请求
- html同学录设计模板,同学录封面
- 沃兹批评苹果避税:纳税还不如我积极
- c语言的数组长度问题
- Java对数组的操作(三)—比较两个数组中的元素是否相同的最简单方法
- 运行命令、文件扩展名速查、Windows运行命令大全
- java毕向东练习题,java中的String类的练习(来自毕向东老师视频资料)
- 基于单片机的空气质量监测
- 两个点 定位_智造讲堂:RFID定位导航技术
- 六、CSS3的美化字体与段落
- 《大数据日知录》读书笔记 + 回顾补充(20190716 - 2019MMdd)
- 从自己的角度比较 天书夜读 和 寒江独钓
- 关于nova服务项目的使用方法
- win7防火墙规则设置
热门文章
- Somer’s D(Somers’ Delta)-顺序变量相关性分析方法
- 恢复oracle数据步骤,通过数据泵expdp、impdp方式备份与还原/恢复 Oracle数据库(详细过程)-Oracle...
- 翻译:protocol的高阶用法,在Swift 5中使用协议protocol构建自定义集合Collection
- 算法:链表最快的排序方法,分而治之再合并排序
- 算法:回溯一 电话拨号数字里面的字母组合 letter-combinations-of-a-phone-number
- 3.1 广义线性模型 And XGBoost
- IMPORTANT: You may need to close and restart your shell after running ‘conda init‘.
- 凸优化-Proximal GD
- 【bug解决】No OpKernel was registered to support Op 'CudnnRNN' with these attrs.
- 【文献阅读笔记】(1):一篇手把手教你做GWAS的Guideline文献解读