Java如何通过属性名获取Object对象属性值

 更新时间:2024年07月30日 15:43:40   作者:培根芝士  
这篇文章主要介绍了Java如何通过属性名获取Object对象属性值问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Java通过属性名获取Object对象属性值

通过已知的属性名称,从对象里获取数据的方式

通过将Object转为Map

public Object getPropertyValue(Object t,String objProperty) {
    Map<String, String> objMap = null;
    try {
        objMap = BeanUtils.describe(t);
        return objMap.get(objProperty);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}

通过invoke方式

public Object getFieldValueByName(Object o,String fieldName) {
    try {
        String firstLetter = fieldName.substring(0, 1).toUpperCase();
        String getter = "get" + firstLetter + fieldName.substring(1);
        Method method = o.getClass().getMethod(getter);
        return method.invoke(o);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}

调用方式:

//Map方式
Object obj = getPropertyValue(order, "userId");
if (obj != null) {
    Integer userId = Integer.parseInt((String)obj);
}

//invoke方式
Object obj = getFieldValueByName(order, "userId");
if (obj != null) {
    Integer userId = (Integer)obj;
}

获取Object对象中对应的属性的值(使用IEnumerable)

//对象名称,属性名
 
//返回该对象下的数据内容
 
public object GetPropertyValue(object info, string field)
        {
            if (info == null) return null;
            Type t = info.GetType();
    IEnumerable<System.Reflection.PropertyInfo> property = from pi in t.GetProperties() where pi.Name.ToLower() == field.ToLower() select pi;
            return property.First().GetValue(info, null);
        }

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • github上的java项目怎么运行(面向小白)

    github上的java项目怎么运行(面向小白)

    这篇文章主要介绍了github上的java项目怎么运行(面向小白),今天从github把我以前写的一个小demo下载下来了,第一次下载项目,摸索了一个多小时,才运行起来,需要的朋友可以参考下
    2019-06-06
  • Java8新特性之字符串去重介绍

    Java8新特性之字符串去重介绍

    这篇文章主要介绍了Java8新特性之字符串去重介绍,新的字符串去重特性可以帮助减少应用中String对象的内存占用,目前该特性只适用于G1垃圾收集器,并且默认不被开启,需要的朋友可以参考下
    2014-09-09
  • 使用java实现手机短信验证全过程

    使用java实现手机短信验证全过程

    这篇文章主要介绍了使用java实现手机短信验证全过程,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • 基于IDEA创建SpringMVC项目流程图解

    基于IDEA创建SpringMVC项目流程图解

    这篇文章主要介绍了基于IDEA创建SpringMVC项目流程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Java Condition类案例详解

    Java Condition类案例详解

    这篇文章主要介绍了Java Condition类案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • 快速解决idea @Autowired报红线问题

    快速解决idea @Autowired报红线问题

    这篇文章主要介绍了快速解决idea @Autowired报红线问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • JAVACORE与HEAPDUMP生成方法

    JAVACORE与HEAPDUMP生成方法

    JavaCore文件主要保存的是Java应用各线程在某一时刻的运行的位置,即JVM执行到哪一个类、哪一个方法、哪一个行上,它是一个文本文件,打开后可以看到每一个线程的执行栈,以stack trace的显示,本文介绍JAVACORE与HEAPDUMP生成大法,感兴趣的朋友跟随小编一起看看吧
    2024-08-08
  • Java 中Json中既有对象又有数组的参数如何转化成对象(推荐)

    Java 中Json中既有对象又有数组的参数如何转化成对象(推荐)

    Gson库是一个功能强大、易于使用的Java序列化/反序列化库,它提供了丰富的API来支持Java对象和JSON之间的转换,这篇文章主要介绍了Java 中Json中既有对象又有数组的参数如何转化成对象,需要的朋友可以参考下
    2024-07-07
  • 如何手写一个Spring Boot Starter

    如何手写一个Spring Boot Starter

    这篇文章主要介绍了如何手写一个Spring Boot Starter,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下
    2021-03-03
  • MyBatis学习教程(五)-实现关联表查询方法详解

    MyBatis学习教程(五)-实现关联表查询方法详解

    本文给大家介绍mybatis关联查询,包括一对一关联查询,一对多关联查询,代码简单易懂,感兴趣的朋友一起学习吧
    2016-05-05

最新评论