java invoke 泛型_利用Java反射机制和泛型,全自动解析json
有啦这个简直,太爽啦,
利用Java 反射机制,利用Class 就可以得到 类的 变量 Field[] fields=cls.getDeclaredFields();
还可以通过类中 的方法名字 去执行这个方法
m1 = cls.getDeclaredMethod(getMothodName(fields[j].getName()), String.class);
m1.invoke(result,json.getString(fields[j].getName()) );
利用泛型 去获取这个Class 的实例 T result= cls.newInstance();上面的便可以执行
方法名 如何获取得到 假设说一个变量名称为name 那么 设置这个的参数就是 setName();
很明显 变量名前加上 set 然后 变量名第一个字符大写 加在一起就是setName
整个方法如下:
public static List getObject(JSONArray arr,Class cls){
Field[] fields=cls.getDeclaredFields();
Method m1;
List list = new ArrayList();
try {
T result = null;
try {
result = cls.newInstance();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for(int i=0;i
{
JSONObject json = arr.getJSONObject(i);
for (int j = 0; j < fields.length; j++) {
m1 = cls.getDeclaredMethod(getMothodName(fields[j].getName()), String.class);
m1.invoke(result,json.getString(fields[j].getName()) );
}
list.add(result);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
private static String getMothodName(String name){
char[] b =name.toCharArray();
if (b[0] >= 97 && b[0] <= 122) {
b[0] = (char) (b[0] - 32);
}
String mothodName="set"+new String(b);
return mothodName;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
java invoke 泛型_利用Java反射机制和泛型,全自动解析json相关推荐
- java 实现网络通信_利用Java怎么样实现网络通信功能
利用Java怎么样实现网络通信功能 发布时间:2020-11-20 15:19:04 来源:亿速云 阅读:72 作者:Leah 利用Java怎么样实现网络通信功能?相信很多没有经验的人对此束手无策,为 ...
- java 刷新界面_利用java如何实现在删除信息后刷新页面功能
利用java如何实现在删除信息后刷新页面功能 发布时间:2020-11-17 14:25:49 来源:亿速云 阅读:74 作者:Leah 这篇文章给大家介绍利用java如何实现在删除信息后刷新页面功能 ...
- java post 注册_利用JAVA发送POST请求(垃圾注册就是这么产生的) | 学步园
大伙都知道利用JAVA的net包的URL类和 URLConnection可以得到网页源代码(这个应该是蜘蛛程序的锥形吧),但是向网页发送数据怎么办呢,GET请求很好处理,直接在网址后面加参数就可以了, ...
- java远控_利用Java实现远程控制
利用 Java 实现远程控制 摘 要: 介绍了远程控制地原理 , 详细地叙述了利用 Java 实现远程控制软件地程序设计方法和要点 , 并给出了要点地具体实现方法 . 关键词: 远程控制: Java ...
- java游戏循环_利用Java循环语句实现攻击防御塔小游戏
/* * 时间:2018-3-21 * 目的:practice * 内容:利用Java循环语句实现攻击防御塔小游戏 * 使用Java while语句实现一个英雄攻击防御塔的小程序,防御塔血量总计100 ...
- java 重复代码优化_利用注解 + 反射消除重复代码(Java项目)
1. 案例分析 1.1 案例场景 假设银行提供了一些 API 接口,对参数的序列化有点特殊,不使用 JSON,而是需要我们把参数依次拼在一起构成一个大字符串 按照银行提供的API文档顺序,将所有的参数 ...
- java jmap 分析_利用java虚拟机的工具jmap分析java内存情况
有时候碰到性能问题,比如一个java application出现out of memory,出现内存泄漏的情况,再去修改bug可能会变得异常复杂,利用工具去分析整个java application 内 ...
- java多线程查询_利用Java函数式接口处理多线程查询
Java函数式接口 有且只有一个抽象方法的接口被称为函数式接口. @FunctionalInterface注解: 该注解可用于一个接口的定义上, 一旦使用该注解来定义接口, 编译器将会强制检查该接口是 ...
- java 全双工服务器_利用Java实现串口全双工通讯_JAVA实例教程_IT部落
本文介绍了一个简单的通过串口实现全双工通讯的Java类库,该类库大大的简化了对串口进行操作的过程 一个嵌入式系统通常需要通过串口与其主控系统进行全双工通讯,譬如一个流水线控制系统需要不断的接受从主控系 ...
最新文章
- 李飞飞团队最新论文:如何对图像中的实体精准“配对”?(附代码论文)
- AI学高数达到MIT本科水平,学了微积分线性代数概率论等6门课,不光能做题还能出题...
- php 织梦wap源码,织梦手机静态页生成插件 DEDE WAP静态化 手机端生成静态
- 软件的安装(包括yum仓库与源码包的安装)
- 【渝粤教育】国家开放大学2018年秋季 0239-21T电子商务物流管理 参考试题
- Mr.J--蓝桥杯--去注释
- linux 配置apache的虚拟主机
- 2021年,UI行业真实前景到底如何?
- 企业管理系统前后端分离架构设计 系列一 权限模型篇
- 让kbmmw 4.8 支持ios 64
- PDF文件转MOBI怎么转?在线操作轻松完成
- (附源码)计算机毕业设计SSM保险客户管理系统
- java画太极加图片_使用Java 2D绘制黑白太极图案
- 语音信号短时时域分析
- Mac(3) Parallels Desktop 安装 Windows10专业版
- Spring事务切面原理
- crm系统技术(crm系统需要用到的技术)
- python3 安装依赖库db4-devel和libpcap-devel安装失败 请大佬指教
- eclipse开发jsp环境的插件
- mms流媒体服务器搭建(包含预览即本地播放)
热门文章
- PHP红黑源码,红黑树的实现源码(第二次修订版)
- php redis 投票_高可用Redis服务架构分析与搭建
- html dom透明度,HTML DOM Style overflow 属性
- WebP 在减少图片体积和流量上的效果如何?MIP技术实践分享
- 面向视频的全新AI架构 —— 阿里云智能视觉技术全解
- 测试:脱离VS2010使用自动化测试时出现 6DA215C2-D80D-42F2-A514-B44A16DCBAAA 错误
- Map Reduce和流处理
- 关于批量插入数据之我见(100万级别的数据,mysql)
- 《自顶向下网络设计(第3版)》——导读
- linux系统编程之文件与I/O(六):fcntl 函数与文件锁