zoukankan      html  css  js  c++  java
  • 通过反射获取类的所有属性值拼接成字符串工具类

    public static String objectToString(Object object){
    StringBuffer result = new StringBuffer();
    try {
    // 获得当前类的Class
    Class<? extends Object> clazz = object.getClass();
    // 获取当前类的全部属性
    Field[] fields = clazz.getDeclaredFields();
    for (Field field : fields) {
    // 遍历属性得到属性名
    String fieldName = field.getName();

             // 如果是用于序列化的直接过滤掉
                if ("serialVersionUID".equals(fieldName)) {
                continue;
                }

                // 判断属性的类型,主要是区分boolean和其他类型
    Class<?> type = field.getType();
    // boolean的取值是is,其他是get ticket这个类会报错getLLockDetail方法找不到 已修改
    String methodName = (type.getTypeName().equals("boolean")?"is":"get")
    + fieldName.substring(0,1).toUpperCase()
    + fieldName.substring(1, fieldName.length());
    Method method;
    java.lang.Object resultObj;
    // 通过方法名得到方法对象
    method = clazz.getMethod(methodName);
    // 得到这个方法的返回值
    resultObj = method.invoke(object);
    // 将属性名和它对应的值进行匹配打印 排除两个字段
    if (!PRIMARY_KEY.equals(fieldName) && !LASTUPDATE_TIME.equals(fieldName)){
    result.append(resultObj).append("|");
    }

    }
    } catch (SecurityException | NoSuchMethodException | IllegalAccessException
    | IllegalArgumentException | InvocationTargetException e) {
    log.error("[objectToString] error, Exception:",e);
    }
    return result.substring(0,result.length()-1);//去除最后一个|
    }
  • 相关阅读:
    指针和数组分析(上)
    函数对象分析
    C语言关键字
    STM32串口遇到的一个问题
    map文件分析
    对象的销毁
    对象的构造顺序
    JavaScript实现表单的校验以及匹配正则表达式
    Python Turtle库绘制表盘时钟
    Python Turtle库绘制蟒蛇
  • 原文地址:https://www.cnblogs.com/pengxupx/p/12660997.html
Copyright © 2011-2022 走看看