`
dengminghua1016
  • 浏览: 129736 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java获取对象属性类型、属性名称、属性值

    博客分类:
  • java
 
阅读更多
/**
* 根据属性名获取属性值
* */
    private Object getFieldValueByName(String fieldName, Object o) {
        try { 
            String firstLetter = fieldName.substring(0, 1).toUpperCase(); 
            String getter = "get" + firstLetter + fieldName.substring(1); 
            Method method = o.getClass().getMethod(getter, new Class[] {}); 
            Object value = method.invoke(o, new Object[] {}); 
            return value; 
        } catch (Exception e) { 
            log.error(e.getMessage(),e); 
            return null; 
        } 
    }
   
    /**
     * 获取属性名数组
     * */
    private String[] getFiledName(Object o){
    Field[] fields=o.getClass().getDeclaredFields();
       String[] fieldNames=new String[fields.length];
    for(int i=0;i<fields.length;i++){
    System.out.println(fields[i].getType());
    fieldNames[i]=fields[i].getName();
    }
    return fieldNames;
    }
   
    /**
     * 获取属性类型(type),属性名(name),属性值(value)的map组成的list
     * */
    private List getFiledsInfo(Object o){
    Field[] fields=o.getClass().getDeclaredFields();
       String[] fieldNames=new String[fields.length];
       List list = new ArrayList();
       Map infoMap=null;
    for(int i=0;i<fields.length;i++){
    infoMap = new HashMap();
    infoMap.put("type", fields[i].getType().toString());
    infoMap.put("name", fields[i].getName());
    infoMap.put("value", getFieldValueByName(fields[i].getName(), o));
    list.add(infoMap);
    }
    return list;
    }
   
    /**
     * 获取对象的所有属性值,返回一个对象数组
     * */
    public Object[] getFiledValues(Object o){
    String[] fieldNames=this.getFiledName(o);
    Object[] value=new Object[fieldNames.length];
    for(int i=0;i<fieldNames.length;i++){
    value[i]=this.getFieldValueByName(fieldNames[i], o);
    }
    return value;
    }
分享到:
评论

相关推荐

    基于net的超市管理系统源代码(完整前后端+sqlserver+说明文档+LW).zip

    功能说明: 环境说明: 开发软件:VS 2017 (版本2017以上即可,不能低于2017) 数据库:SqlServer2008r2(数据库版本无限制,都可以导入) 开发模式:mvc。。。

    LABVIEW程序实例-公式节点.zip

    labview程序代码参考学习使用,希望对你有所帮助。

    大米商城开源版damishop(适合外贸)

    大米外贸商城系统 简称damishop 完全开源版,只需做一种语言一键开启全球133中语言自动翻译功能,价格实现自动汇率转换,集成微信支付宝 paypal以及国外主流支付方式,自带文章博客系统。 软件架构 基于MVC+语言包模式,增加控制台,API导入产品方便对接其他系统(带json示例数据)。 使用要求 PHP7.4+ MYSQL5.6+ REDIS(可选) 安装方法 composer install 打开安装向导安装 http://您的域名/install 特色 1、缓存层增加时间与批量like删除 2、API产品导入方便对接其他系统 3、增加控制台命令行,命令行生成语言翻译包 4、后台一键开启自动翻译模式,支持全球133中语言,由于google代理翻译需要收费,这个功能需要付费。 5、可选购物车与ajax修改购物车产品 6、一键结算checkout 7、增加网站前台自定义路由 方便seo 更新日志 v3.9.7 集成鱼码支付接口,方便个人站长即使收款到账使用 v3.9.3 更新内容 1:增加ueditor与旧编辑器切换 2:增加可视化布局插

    LABVIEW程序实例-通过全局变量接收数据.zip

    labview程序代码参考学习使用,希望对你有所帮助。

    LABVIEW程序实例-日历控件.zip

    labview程序代码参考学习使用,希望对你有所帮助。

    毕设和企业适用springboot人工智能客服系统类及旅游规划平台源码+论文+视频.zip

    毕设和企业适用springboot人工智能客服系统类及旅游规划平台源码+论文+视频

Global site tag (gtag.js) - Google Analytics