有啦这个简直,太爽啦,

利用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相关推荐

  1. java 实现网络通信_利用Java怎么样实现网络通信功能

    利用Java怎么样实现网络通信功能 发布时间:2020-11-20 15:19:04 来源:亿速云 阅读:72 作者:Leah 利用Java怎么样实现网络通信功能?相信很多没有经验的人对此束手无策,为 ...

  2. java 刷新界面_利用java如何实现在删除信息后刷新页面功能

    利用java如何实现在删除信息后刷新页面功能 发布时间:2020-11-17 14:25:49 来源:亿速云 阅读:74 作者:Leah 这篇文章给大家介绍利用java如何实现在删除信息后刷新页面功能 ...

  3. java post 注册_利用JAVA发送POST请求(垃圾注册就是这么产生的) | 学步园

    大伙都知道利用JAVA的net包的URL类和 URLConnection可以得到网页源代码(这个应该是蜘蛛程序的锥形吧),但是向网页发送数据怎么办呢,GET请求很好处理,直接在网址后面加参数就可以了, ...

  4. java远控_利用Java实现远程控制

    利用 Java 实现远程控制 摘 要: 介绍了远程控制地原理 , 详细地叙述了利用 Java 实现远程控制软件地程序设计方法和要点 , 并给出了要点地具体实现方法 . 关键词: 远程控制: Java ...

  5. java游戏循环_利用Java循环语句实现攻击防御塔小游戏

    /* * 时间:2018-3-21 * 目的:practice * 内容:利用Java循环语句实现攻击防御塔小游戏 * 使用Java while语句实现一个英雄攻击防御塔的小程序,防御塔血量总计100 ...

  6. java 重复代码优化_利用注解 + 反射消除重复代码(Java项目)

    1. 案例分析 1.1 案例场景 假设银行提供了一些 API 接口,对参数的序列化有点特殊,不使用 JSON,而是需要我们把参数依次拼在一起构成一个大字符串 按照银行提供的API文档顺序,将所有的参数 ...

  7. java jmap 分析_利用java虚拟机的工具jmap分析java内存情况

    有时候碰到性能问题,比如一个java application出现out of memory,出现内存泄漏的情况,再去修改bug可能会变得异常复杂,利用工具去分析整个java application 内 ...

  8. java多线程查询_利用Java函数式接口处理多线程查询

    Java函数式接口 有且只有一个抽象方法的接口被称为函数式接口. @FunctionalInterface注解: 该注解可用于一个接口的定义上, 一旦使用该注解来定义接口, 编译器将会强制检查该接口是 ...

  9. java 全双工服务器_利用Java实现串口全双工通讯_JAVA实例教程_IT部落

    本文介绍了一个简单的通过串口实现全双工通讯的Java类库,该类库大大的简化了对串口进行操作的过程 一个嵌入式系统通常需要通过串口与其主控系统进行全双工通讯,譬如一个流水线控制系统需要不断的接受从主控系 ...

最新文章

  1. 李飞飞团队最新论文:如何对图像中的实体精准“配对”?(附代码论文)
  2. AI学高数达到MIT本科水平,学了微积分线性代数概率论等6门课,不光能做题还能出题...
  3. php 织梦wap源码,织梦手机静态页生成插件 DEDE WAP静态化 手机端生成静态
  4. 软件的安装(包括yum仓库与源码包的安装)
  5. 【渝粤教育】国家开放大学2018年秋季 0239-21T电子商务物流管理 参考试题
  6. Mr.J--蓝桥杯--去注释
  7. linux 配置apache的虚拟主机
  8. 2021年,UI行业真实前景到底如何?
  9. 企业管理系统前后端分离架构设计 系列一 权限模型篇
  10. 让kbmmw 4.8 支持ios 64
  11. PDF文件转MOBI怎么转?在线操作轻松完成
  12. (附源码)计算机毕业设计SSM保险客户管理系统
  13. java画太极加图片_使用Java 2D绘制黑白太极图案
  14. 语音信号短时时域分析
  15. Mac(3) Parallels Desktop 安装 Windows10专业版
  16. Spring事务切面原理
  17. crm系统技术(crm系统需要用到的技术)
  18. python3 安装依赖库db4-devel和libpcap-devel安装失败 请大佬指教
  19. eclipse开发jsp环境的插件
  20. mms流媒体服务器搭建(包含预览即本地播放)

热门文章

  1. PHP红黑源码,红黑树的实现源码(第二次修订版)
  2. php redis 投票_高可用Redis服务架构分析与搭建
  3. html dom透明度,HTML DOM Style overflow 属性
  4. WebP 在减少图片体积和流量上的效果如何?MIP技术实践分享
  5. 面向视频的全新AI架构 —— 阿里云智能视觉技术全解
  6. 测试:脱离VS2010使用自动化测试时出现 6DA215C2-D80D-42F2-A514-B44A16DCBAAA 错误
  7. Map Reduce和流处理
  8. 关于批量插入数据之我见(100万级别的数据,mysql)
  9. 《自顶向下网络设计(第3版)》——导读
  10. linux系统编程之文件与I/O(六):fcntl 函数与文件锁