美文网首页
Java 工具类-toString

Java 工具类-toString

作者: Yellowtail | 来源:发表于2018-11-05 16:40 被阅读0次

    前言

    Java web系统,难以避免使用大量的第三方jar包,有时会遇到一些对象,没有实现toString()方法
    如果我们又想把这个对象打印出来,就比较费劲了:需要自己去调用get方法
    如果这个对象没有提供get方法,此时就只能通过反射的方式去打印值了。

    我这次就遇到了一个没有提供get方法的对象,打印它的时候,写了一个工具类
    在此分享出来

    code

    /**
     * <br>打印一些没有实现 toString 方法的对象
     * <br>成员变量必须实现了toString 方法,也就是本方法不会实现递归逻辑
     *
     * @param obj  对象实例
     * @param clazz 对象 class
     * @param fieldName  私有成员变量的名称
     * @return
     * @author YellowTail
     * @since 2018-11-02
     */
    public static String getString(Object obj, Class<?> clazz, String fieldName) {
        String result = "Failed toString";
        
        try {
            Field valueField = clazz.getDeclaredField(fieldName);
            valueField.setAccessible(true);
            Object object = valueField.get(obj);
            result = object.toString();
        } catch (NoSuchFieldException | SecurityException e) {
            LOGGER.error("class not found, ", e);
        } catch (IllegalArgumentException e) {
            LOGGER.error("IllegalArgumentException, ", e);
        } catch (IllegalAccessException e) {
            LOGGER.error("IllegalAccessException, ", e);
        }
        
        return result;
    }
    

    example

    String string = LoggerUtils.getString(aggregate, Aggregate.class, "pipeline");
    LOGGER.debug("aggregate is {}", string);
    

    相关文章

      网友评论

          本文标题:Java 工具类-toString

          本文链接:https://www.haomeiwen.com/subject/abisxqtx.html