作家
登录

Java高级特性之反射学习总结

作者: 来源: 2017-05-26 11:06:24 阅读 我要评论

int age; 
  •  
  •     public String getName() { 
  •         return name
  •     } 
  •  
  •     public void setName(String name) { 
  •         this.name = name
  •     } 
  •  
  •     public int getAge() { 
  •         return age; 
  •     } 
  •  
  •     public void setAge(int age) { 
  •         this.age = age; 
  •     } 
  •  
  •  
  • 输入结不雅:

    1. 张三 
    2.  张三  

    2、获取成员变量和办法

    在讲之前我们先来看如许一个小按理,JSON数据转JavaBaen对象,在不消解析库的情况下,一般我们会如许做

    每当我们须要解析额时刻,都须要根据不合javabean来进行响应的解析,我们每次进行的操作都是一样的,只是解析的数据不合罢了,结合上篇帖子讲到的泛型,这里我们就可以再应用反射来本身做一个Json解析对象。

    下面是我写的一个JsonObject对象转JavaBean的一个对象类,须要留意的是,JSON的key须要和字段名保持一致,先说下思路

    ①起首经由过程反射获取JavaBean中的所有字段值的名称

    ②拼接出set办法

    ③因为字段名和Json的key值雷同,应用主动名获取Json中的值并填充的实例对象中

    1. public class Json2BeanUtils { 
    2.  
    3.     public static <T> T jsonToBean(JSONObject response, Class<T> clazz) { 
    4.         try { 
    5.             // 创建类的实例 
    6.             Object object = Class.forName(clazz.getName()).newInstance(); 
    7.             // 获取类中的所有成员变量 
    8.             Field[] fields = object.getClass().getDeclaredFields(); 
    9.             for (int i = 0; i < fields.length; i++) { 
    10.                 //设置权限 
    11.                 fields[i].setAccessible(true); 
    12.                 // 获取字段的名称 
    13.                 String fieldName = fields[i].getName(); 
    14.                 // 过滤掉落UID 
    15.                 if (fieldName.endsWith(

        推荐阅读

        Windows Server 2016软件定义存储:Storage Spaces Direct介绍

      微软在Windows Server 2016 Technical Preview 2中惹人了Storage Spaces Direct。这个特点将本地存储扩大为高>>>详细阅读


      本文标题:Java高级特性之反射学习总结

      地址:http://www.17bianji.com/lsqh/35444.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)