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);//去除最后一个|
    }
  • 相关阅读:
    线程安全 ---Struts1与Struts2
    sql servset 有表,没表备份数据。
    group by 使用及体会 和having用法
    js 去掉输入的空格
    struts + json + ajax +级联 例子
    js 级联 思路
    return break continue 的用法和作用
    eclise 怎么集成 spket 。及spket 与 sdk.jsb3管理起来
    logback基本用法
    log4j:特定类的日志输出到指定的日志文件中
  • 原文地址:https://www.cnblogs.com/pengxupx/p/12660997.html
Copyright © 2011-2022 走看看