首页 > 编程语言 >Java 获取对象的属性及属性值

Java 获取对象的属性及属性值

时间:2023-07-28 17:25:45浏览次数:27  
标签:return String Object 获取 fieldName Java 属性

获取属性名称:

/**
 * 获取属性名数组
 *
 * @param o 对象
 * @return 属性名称
 */
private String[] getFiledName(Object o){
    Field[] fields=o.getClass().getSuperclass().getDeclaredFields();
    String[] fieldNames=new String[fields.length];
    for(int i=0;i<fields.length;i++){
        fieldNames[i]=fields[i].getName();
    }
    return fieldNames;
}

根据属性名称获取属性值

/**
 * 根据属性名获取属性值
 *
 * @param fieldName 属性名称
 * @param o 对象
 * @return 属性值
 */
private static 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) {

        return null;
    }
}

打印属性名及属性值

public void testFiled() {
    CrmConflictCustomerRespVo object = getObject();
    CrmConflictCustomerRespVo object1 = getObject();

    String[] fieldNames = getFiledName(object);

    long startTime = System.currentTimeMillis();
    for(int j=0 ; j<fieldNames.length ; j++){ //遍历所有属性
        String name = fieldNames[j]; //获取属性的名字
        Object value = getFieldValueByName(name,object);
        Object value1 = getFieldValueByName(name,object1);
        System.out.println("name = " + name + "; value =" + value + "; value1 = " + value1);

    }
    System.out.println("耗时:" + (System.currentTimeMillis() - startTime));
}

 

标签:return,String,Object,获取,fieldName,Java,属性
From: https://www.cnblogs.com/abel-he/p/17014771.html

相关文章

  • 【selenium】获取token及session数据
    UI测试过程中遇到系统其他页面需要登录鉴权,不能每次打开页面都重新进行登录,所以需要保存登录用例时的tokendefsave_session(self,value):"""1.其中localStorage、token关键字是需要根据自己实际情况填写的localStorage:目标系统,需要查看自己的token是存在localStor......
  • java——虚拟机、线程
    java虚拟机:是一台想象中的机器,有自己想象的硬件(处理器、堆栈、寄存器等)以及相应的指令系统。生命周期:当执行java程序时,虚拟机开始运行,程序结束虚拟机停止。同一台计算机每多运行一个程序,就会多运行一个虚拟机。虚拟机开始于main()方法。java虚拟机的体系结构:......
  • java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet
    环境信息:JDK17、Tomcat10问题原因我这里编译,打包都是好的,但是一运行发现就报错。错误的原因是Tomcat10里也自带了一些lib包,可以打开Tomcat下lib文件夹,这又涉及到了包的加载顺序了一打开发现Tomcat里的是 JakartaEE,我Maven里引用的还是JavaEE导致的。JavaEE的servlet......
  • 学习Java的第8天
    数据拓展publicclassDemo03{publicstaticvoidmain(String[]args){//*整数拓展进制二进制0b**十进制八进制**0**十六进制**0x**inti=10;inti2=010;//**八进制0**inti3=0x10;//**十六进制0x0~9A~F16**System.out.println(i);System.out......
  • php图片上传401与获取不到图片
    上传一个大的文件报错:413RequestEntityTooLargenginx/1.15.11 这个就是nginx的配置问题了;只需要修改nginx的配置项: client_max_body_size;数值给大一些,比如: client_max_body_size 50m;再次请求报错:CalltoamemberfunctiongetRealPath;这个是TP提示的错误......
  • Java学习1
    java学习01简单写写学习期间不知道or感兴趣的一些东西计算机相关前置知识计算机结构系统软件DOS(DiskOperatingSystem)WindowsLinuxUnix,Mac,Android,IOS...windows快捷键关闭窗口 ALT+F4永久删除文件Shift+Delete快捷指令win+R打开我的电......
  • TestNG 使 Java 单元测试轻而易举
    http://www.ibm.com/developerworks/cn/java/j-testng/在每个现代软件包的构造阶段,测试这一实践都扮演着中心角色。过去那种先编写代码,然后有空的时候再测试(或者根本不测试)的日子已经一去不返,因为大多数开发人员现在认识到需要采用编码和测试彼此交织、同步推进的软件方法论,以便尽......
  • java多线程学习-java.util.concurrent详解
    java多线程学习-java.util.concurrent详解(一)Latch/Barrier   Java1.5提供了一个非常高效实用的多线程包:java.util.concurrent,提供了大量高级工具,可以帮助开发者编写高效、易维护、结构清晰的Java多线程程序。从这篇blog起,我将跟大家一起共同学习这些新的Java多线......
  • Java a=a+b和a+=b的区别
    1、对于同样类型的a,b来说两个式子执行的结果确实没有什么区别。但是从编译的角度看吧(武让说的),a+=b;执行的时候效率高。2、对于不同类型的a,b来说2.1不同类型的两个变量在进行运算的时候,我们经常说到的是类型的转换问题。这里,记住两点:一、运算过程中,低精度的类型向高精度类型转......
  • Java面试题 P11:ArrayList和LinkedList区别
    ArrayList:基于动态数组,连续内存存储,适合下标访问(随机访问),扩容机制:因为数组长度固定,超出长度存数据时需要新建数组,然后将老数组的数据拷贝到新数组,如果不是尾部插入数据还会涉及到元素的移动(往后复制一份,插入新元素),使用尾插法并指定初始容量可以极大提升性能,甚至超过linkedListLin......