问题描述:

但我们知道一个实体类的字段名称,有获取了这个对象,如何获取它的属性值呢?又如何去设置它的属性值?假如该实体的属性为private属性也可以设置吗?

解决方法:

首先我们应该了解到java的反射机制,便可以解决以上问题。而且即便是私有方法或者属性,都可以。

如何使用:

//name为要获取的属性名,如果为private属性则用getdeclared
Field declaredField = obj.getClass().getDeclaredField("name");
//获取public属性
Field field = obj.getClass().getField("name");

那么获取到Filed对象后,就可以理解为获取到了这个字段属性对象,那么就可以调用它的一些方法。

常用的有:

1、filed.setAccessible(true);

如果我们获取到的是private属性,那么想要获取或者操作它的值的时候,就要先设置为可更改属性为true。

2、filed.get(obj);

获取这个字段的具体值。obj为该类的对象

3、fied.set(obj,value);

为这个字段设置值,obj为需要设置的对象。

或者可以利用Method对象的invoke方法来执行实体对象的set方法。

例如:

//class参数为方法参数类型
Method method = obj.getClass().getDeclaredMethod("方法名",BigDecimal.class);
method.setAccessible(true);
method.invoke(obj,value);

至于这个declar同理取决于方法是公有方法还是私有方法。

关于java反射的一些基础方法说明--Filed相关推荐

  1. 关于java反射机制(基础篇)

    关于java的反射机制,有一些初步的理解,但是依然存在几点困惑.先将自己理解的部分分享其下,并提出困惑,之后完善. 1. java反射机制是什么? 从两个概念切入:反射机制和java反射机制 ①反射机 ...

  2. java 反射教程_Java基础教程——反射机制

    Java反射机制 Java反射机制是Java语言的一个重要特性,使得Java语言具备"动态性": 在运行时获取任意一个对象所属的类的相关信息; 在运行时构造任意一个类的对象: 在运 ...

  3. Java反射 - 私有字段和方法

    尽管普遍认为通过Java Reflection可以访问其他类的私有字段和方法. 这并不困难. 这在单元测试中可以非常方便. 本文将告诉你如何. 访问私有字段 要访问私有字段,您需要调用Class.ge ...

  4. java 反射 找不到方法_Java获取反射的三种方法

    class Student { private int id; String name; protected boolean sex ; pub1ic f1oat score; } pub1ic cl ...

  5. java 反射机制_基础篇:深入解析JAVA反射机制

    反射的概念 java 的放射机制:在程序运行时,程序有能力获取一个类的所有方法和属性:并且对于任意一个对象,可以调用它的任意方法或者获取其属性 通俗解析:java 文件需要编译成. class 文件才 ...

  6. java 反射泛型方法_java基础之反射和泛型以及注解

    java基础之反射和泛型以及注解 泛型擦除 泛型擦除: 泛型只在编译时期有效,编译后的字节码文件中不存在泛型信息. 声明泛型集合,集合两端类型必须一致.类型也可以用包装类型,泛型的类型必须是引用类型, ...

  7. Java反射机制的使用方法

    Java的反射机制同意你在程序执行的过程中获取类定义的细节.有时候在程序执行的时候才得知要调用哪个方法,这时候反射机制就派上用场了. 获取类 类的获取方法有下面几种: forName().通过Clas ...

  8. Java反射获取类,方法

    获取Class类的实例 若已知具体的类,通过类的class属性获取,该方法最为安全可靠,程序性能最高. Class clazz = Person.class; 已知某个类的实例,调用该实例的getCl ...

  9. java 反射调用无参方法_java反射调用方法

    使用参数 args 在 obj 上指派该对象所表示方法的结果 3:hello world!级别的反射调用: package com.dao.Text; import java.lang.reflect ...

最新文章

  1. 新疆兵团开展迎新春“送文化下基层”慰问演出活动
  2. 2097352GB地图数据,AI技术酷炫渲染,《微软飞行模拟器》游戏即将上线
  3. JavaScript Tween算法及缓动效果
  4. 新手探索NLP(七)——情感分析
  5. vCloud Automation Center (vCAC) 6.0 (一)
  6. C语言经典算法五个人问岁数!——————【Badboy】
  7. MBB IN CONSULTING
  8. 解决ORACLE被锁定的资源两法
  9. HTML中直接写js 函数
  10. 4.深度学习练习:Building your Deep Neural Network: Step by Step(强烈推荐)
  11. 基于web的新闻发布系统_终极Linux系统ExTiX 19.8发布,基于深度操作系统deepin15.11...
  12. 通过data目录恢复数据库数据(mysql5.7.22)
  13. CI框架上传csv文件
  14. linux 磁盘配额 期限,linux磁盘配额管理
  15. 源码看JAVA【十】Short
  16. Linux 安装molten
  17. 我们与专家讨论了JavaScript –文字记录
  18. 科学家发现4起黑洞相撞事件,其中最大的一起或为“双重”碰撞...
  19. Win10 安装编译器|调试器 TDM-GCC/Mingw64
  20. matlab中sub2ind函数

热门文章

  1. 使用QGIS制作专题地图——上海市游泳馆分布地图
  2. 2020复旦计算机专硕英语,2020双非二战复旦计算机专硕392经验贴
  3. 传输速率和传播速率的理解
  4. [NOIP2017普及组] 棋盘
  5. iOS开发之企业开发者账号打包发布 App 到服务器上的流程
  6. Inferred type S for type parameter S is not within its bound
  7. 决策树概述+模块介绍+重要参数(criterion+random_statesplitter+减枝参数+目标权重参数)+回归树(参数+实例+拟合正弦曲线)+泰坦尼克号生存者预测实例
  8. dax和m的区别_DAX:一文透彻理解DAX本质
  9. 开关电源的开关管一般用MOS管而不是三极管原因
  10. S700K五机牵引转辙设备简介组成及道岔转换设备故障分析【铁路信号技术专栏】—转载自微信公众号铁路信号技术交流