文档章节

反射操作数组---反序列化小知识

o
 osc_1ee7cxmx
发布于 2018/08/06 18:06
字数 168
阅读 0
收藏 0

精选30+云产品,助力企业轻松上云!>>>

Object[]  为 数据源

model 中有一个属性为xxx[] 未知,在java中,object[] 无法强制转化成xxx[],如果上文中的f.set(obj,fieldObj );方法反射写入值,会报错。

具体方法:

 

 

//obj为对象
//classKey 为数组的那个成员变量名称
java.lang.reflect.Field f = obj.getClass().getDeclaredField(classKey);

//获得数组类型
Class fieldClazz = f.getType();

if (fieldClazz.isArray()) {
    Object[] arrayObjs = (Object[]) value;//反序列化生产的object[]
    
    //fieldClazz.getComponentType();获得数组的成员类型
    //Array.newInstance(clazz,length) 相当于 Clazz[] array = new Clazz[length]; 但是clazz 未知时候,无法用后者
    Object fieldObj = Array.newInstance(fieldClazz.getComponentType(), arrayObjs.length);
    
    for(int j = 0 ; j < arrayObjs.length; j++) {
        //写入值的方法
        Array.set(fieldObj, j, arrayObjs[j]);
    }
     f.set(obj,fieldObj );
}

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

JSON认识

JSON 阅读: 86328 JSON是JavaScript Object Notation的缩写,它是一种数据交换格式。 JSON实际上是JavaScript的一个子集。在JSON中,一共就这么几种数据类型: number:和JavaScript的numbe...

osc_4hvlwoqt
58分钟前
19
0
JavaScript基础

一、JavaScript基础 1.什么是JavaScript? JavaScript是运行在客户端的解释性脚本语言; 扩展: A.HTML、CSS、JavaScript都是在浏览器运行,所以称为客户端技术,会存在 浏览器兼容性; B.所有的编...

osc_afjz4qba
59分钟前
6
0
【融职培训】Web前端学习 第11章 微信开发1 微信开发概述

一、前言 微信为广大开发者提供了两个平台,分别是微信公众平台和微信开放平台。本节将简单概述这两个平台的基本功能。 二、微信公众平台 进入微信公众平台首页可以看到公众平台账号的分类,...

学习猿地
今天
11
0
MySQL之视图、存储过程、触发器、函数、事务、动态执行SQL

视图 视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,并可以将其当作表来使用。 创建视图: create v...

osc_idh31hqp
今天
11
0
MySQL基础知识回顾

MarkdownPad Document MySQL MySQL:是用于管理文件的一个软件    - 服务端软件        - socket服务端        - 本地文件操作        - 解析指令【SQL...

osc_v1ao43h5
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部