java 反射遍历_java使用反射遍历类的字段
问题描述:
课程Course(字段非常多,一个一个修改不现实)修改
解决思路:
1.获得根据id,返回oldCourse
2.前端传过来的json字段String course,经过特殊处理,再使用GsonBuilder转化为curCourse
接着,使用反射遍历字段,将curCourse的其他字段值更新至oldCourse
//将不用特殊处理的course字段更新
private Course parseDetail(Course curCourse,Course oldCourse) {
Field[] fields = curCourse.getClass().getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
try {
if(!field.getName().equals("serialVersionUID")&&field.get(curCourse)!=null) {
field.set(oldCourse,field.get(curCourse));
}
} catch (Exception e) {
e.printStackTrace();
}
field.setAccessible(false);
}
return oldCourse;
}
3.其他用法:可以使用反射触发set方法
传入类名和json字符串可使用反射进行任何共有的set方法进行赋值
/**
* 对某一条元数据进行修改
*
* @param entity 元数据实体名
* @param item 修改的条目
* @return boolean
* @date 18/08/08
*/
@SuppressWarnings({"unchecked"})
public boolean saveMetadataChange(String entity, String item) {
try {
Class c = this.entities.get(entity.substring(0, 1).toUpperCase() + entity.substring(1));
Object obj = gson.fromJson(item, c);
this.getClass().getMethod("add" + entity.substring(0, 1).toUpperCase() + entity.substring(1), c).invoke(this, obj);
return true;
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
java 反射遍历_java使用反射遍历类的字段相关推荐
- java 反射 性能_java高性能反射及性能对比
java编程中,使用反射来增强灵活性(如各类框架).某些抽象(如各类框架)及减少样板代码(如Java Bean). 因此,反射在实际的java项目中被大量使用. 由于项目里存在反射的性能瓶颈,使用的是 ...
- java list 删除 遍历_Java list利用遍历进行删除操作3种方法解析
Java list利用遍历进行删除操作3种方法解析 这篇文章主要介绍了Java list利用遍历进行删除操作3种方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需 ...
- java 反射模式_java 设计模式——反射机制的应用
Java反射机制是指:在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为Java语言 ...
- java集合的遍历_Java集合之遍历
在Java开发中,集合,可以说使我们必然要使用到的一个框架.对集合的遍历也是我么经常要进行的操作,而遍历操作又有多种,下面就对集合遍历进行以下总结. 一.List.Set的遍历 List与Set都继承 ...
- java中map如何实现遍历_Java中如何遍历Map对象的4种方法
在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...
- Java木乃伊枪_java核心技术反射
类加载器: 用来加载通过javac编译成的.class文件.jvm虚拟机当中的类加载器负责加载这些编译好的类字节文件,先经过一系列的处理,然后缓存到我们的JVM虚拟机中.供程序随时使用. 反射实现的基 ...
- java 反射 动态_java实现反射,动态配置
标签://java 实现反射 //首先定义一个接口Ishow.java public interface Ishow(){ void show(String str); } //建立一个demo.ja ...
- java entryset循环_Java之Map遍历方式性能分析:ketSet 与 entrySet
keySet():将Map中所有的键存入到Set集合中.因为set具备迭代器,所以可以以迭代方式取出所有的键,再根据get方法获取每一个键对应的值,其仅能通过get()取key. entrySet() ...
- java 树 广度优先遍历_Java二进制搜索树遍历操作的详细描述[前,中,后,层次,广度优先遍历]...
本文介绍了Java二进制搜索树遍历操作. 与您分享以供参考,如下: 前言: 在Java Binary Search Tree Basics的上一节中,我们了解了该树及其相关知识,并对Binary Se ...
- java 调用弗雷_JAVA API(一)String类和StringBuffer类
1.String类和StringBuffer类 在程序中经常会用到字符串,所谓的字符串就是指一连串的字符,它是由多个单个字符连接而成的.字符串中可以包含任意字符,这些字符必须包含在一对双引号" ...
最新文章
- redis界面管理工具phpRedisAdmin 安装
- 语音写出(wavwrite)
- java nio 追加写文件_Java NIO在文件末尾追加数据
- C++类静态成员与类静态成员函数
- OpenShift 4 - CRC(Codeready Container)个人单机版 OpenShift 环境
- FKGE:合格的知识图谱嵌入已经学会保护隐私啦!
- php对html加密解密,PHP Mcrypt和HTML5加密API加密/解密
- 从dump看硬件问题
- RequestsLibrary库入门介绍
- 隐马尔科夫模型(HMM)
- 统计学原理 数值型数据的整理与展示
- 杭州天目山路招PHP,杭州地铁3号线汽车西站站开始主体施工 天目山路部分路面要开挖了...
- 卫星移动通信现状与未来发展
- 解决Ubuntu 键盘输入一直大写的问题
- 在来一次 快转存哦
- Hack The Box——Traceback
- 什么是Kusama (KSM)以及与波卡的区别
- Hash签名算法入门
- 前端工程化精讲第七课 低代码工具:如何用更少的代码实现更灵活的需求?
- c语言长方体体积float,如何在C语言中实现长方体体积的计算?
热门文章
- 从大数据到安全大数据分析
- 创业还需要开发 App 么?
- base64 数据处理
- secureCRT常用设置
- 成为顶尖机器学习算法专家需要知道哪些算法?
- 数据结构Java实现05----栈:顺序栈和链式堆栈
- DB2安装过程中可能遇到的错误
- matlab m 文件例子,一个简单OFDM例子(matlab m文件)
- mysql中tonumber函数_Oracle数据库之oracle的TO_NUMBER函数
- voliate修饰数组有作用吗_Arrays.asList()真的就把数组转换为了List集合吗?