全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

java反射遍历实体类属性和类型,并赋值和获取值的简单方法

实例如下:

import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Date;

/**
 * 获取实体类型的属性名和类型
 * @param model 为实体类
 * @author kou 为传入参数
 */
public class GetModelNameAndType
{

  public static void testReflect(Object model) throws SecurityException,
      NoSuchMethodException, IllegalArgumentException,
      IllegalAccessException, InvocationTargetException, InstantiationException
  {
    // 获取实体类的所有属性,返回Field数组
    Field[] field = model.getClass().getDeclaredFields();
    // 获取属性的名字
    String[] modelName = new String[field.length];
    String[] modelType = new String[field.length];
    for (int i = 0; i < field.length; i++)
    {
      // 获取属性的名字
      String name = field[i].getName();
      modelName[i] = name;
      // 获取属性类型
      String type = field[i].getGenericType().toString();
      modelType[i] = type;
      
      //关键。。。可访问私有变量
      field[i].setAccessible(true);
      //给属性设置
      field[i].set(model, field[i].getType().getConstructor(field[i].getType()).newInstance("kou"));

      // 将属性的首字母大写
      name = name.replaceFirst(name.substring(0, 1), name.substring(0, 1)
          .toUpperCase());

      if (type.equals("class java.lang.String"))
      { 
        // 如果type是类类型,则前面包含"class ",后面跟类名
        Method m = model.getClass().getMethod("get" + name);
        // 调用getter方法获取属性值
        String value = (String) m.invoke(model);
        if (value != null)
        {

          System.out.println("attribute value:" + value);
        }

      }
      if (type.equals("class java.lang.Integer"))
      {
        Method m = model.getClass().getMethod("get" + name);
        Integer value = (Integer) m.invoke(model);
        if (value != null)
        {
          System.out.println("attribute value:" + value);
        }
      }
      if (type.equals("class java.lang.Short"))
      {
        Method m = model.getClass().getMethod("get" + name);
        Short value = (Short) m.invoke(model);
        if (value != null)
        {
          System.out.println("attribute value:" + value);
        }
      }
      if (type.equals("class java.lang.Double"))
      {
        Method m = model.getClass().getMethod("get" + name);
        Double value = (Double) m.invoke(model);
        if (value != null)
        {
          System.out.println("attribute value:" + value);
        }
      }
      if (type.equals("class java.lang.Boolean"))
      {
        Method m = model.getClass().getMethod("get" + name);
        Boolean value = (Boolean) m.invoke(model);
        if (value != null)
        {
          System.out.println("attribute value:" + value);
        }
      }
      if (type.equals("class java.util.Date"))
      {
        Method m = model.getClass().getMethod("get" + name);
        Date value = (Date) m.invoke(model);
        if (value != null)
        {
          System.out.println("attribute value:"
              + value.toLocaleString());
        }
      }
    }
  }

  public static void main(String[] args)
  {
    try
    {
      testReflect(new VO());
    }
    catch (SecurityException e)
    {
      e.printStackTrace();
    }
    catch (IllegalArgumentException e)
    {
      e.printStackTrace();
    }
    catch (NoSuchMethodException e)
    {
      e.printStackTrace();
    }
    catch (IllegalAccessException e)
    {
      e.printStackTrace();
    }
    catch (InvocationTargetException e)
    {
      e.printStackTrace();
    }
    catch (InstantiationException e)
    {
      e.printStackTrace();
    }
  }

}

以上这篇java反射遍历实体类属性和类型,并赋值和获取值的简单方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# java反射给实体类赋值  # Java如何通过反射方式生成数据库实体类  # Java反射机制  # 如何将一个实体类所有字段赋值为null  # java 实现反射 json动态转实体类--fastjson  # 利用JAVA反射  # 读取数据库表名  # 自动生成对应实体类的操作  # java反射机制给实体类相同字段自动赋值实例  # Java 通过反射给实体类赋值操作  # Java如何通过反射取实体类字段取值  # 给大家  # 实体类  # 遍历  # 希望能  # 这篇  # 小编  # 大家多多  # 首字母  # GetModelNameAndType  # static  # void  # public  # model  # author  # kou  # testReflect  # InstantiationException  # IllegalAccessException  # getClass  # field 


相关文章: 建站之星图片链接生成指南:自助建站与智能设计教程  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  已有域名和空间如何搭建网站?  北京网站制作的公司有哪些,北京白云观官方网站?  企业微网站怎么做,公司网站和公众号有什么区别?  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  PHP 500报错的快速解决方法  外贸公司网站制作,外贸网站建设一般有哪些步骤?  如何快速打造个性化非模板自助建站?  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  微信h5制作网站有哪些,免费微信H5页面制作工具?  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  贸易公司网站制作流程,出口贸易网站设计怎么做?  网站制作公司广州有几家,广州尚艺美发学校网站是多少?  建站主机解析:虚拟主机配置与服务器选择指南  制作网页的网站有哪些,电脑上怎么做网页?  如何将凡科建站内容保存为本地文件?  建站之星安装需要哪些步骤及注意事项?  高性价比服务器租赁——企业级配置与24小时运维服务  电商平台网站制作流程,电商网站如何制作?  网站微信制作软件,如何制作微信链接?  如何在香港服务器上快速搭建免备案网站?  已有域名建站全流程解析:网站搭建步骤与建站工具选择  html制作网站的步骤有哪些,iapp如何添加网页?  如何在万网ECS上快速搭建专属网站?  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  如何快速搭建自助建站会员专属系统?  如何在景安云服务器上绑定域名并配置虚拟主机?  css网站制作参考文献有哪些,易聊怎么注册?  红河网站制作公司,红河事业单位身份证如何上传?  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  建站主机选哪家性价比最高?  微课制作网站有哪些,微课网怎么进?  如何通过可视化优化提升建站效果?  做企业网站制作流程,企业网站制作基本流程有哪些?  制作网站怎么制作,*游戏网站怎么搭建?  建站主机选购指南:核心配置优化与品牌推荐方案  如何续费美橙建站之星域名及服务?  香港网站服务器数量如何影响SEO优化效果?  定制建站方案优化指南:企业官网开发与建站费用解析  XML的“混合内容”是什么 怎么用DTD或XSD定义  在线教育网站制作平台,山西立德教育官网?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  建站之星logo尺寸如何设置最合适?  如何快速生成橙子建站落地页链接?  建站主机功能解析:服务器选择与快速搭建指南  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  C++如何使用std::optional?(处理可选值) 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。