pojo日志输出

来源:互联网 发布:java中设计模式详解 编辑:程序博客网 时间:2024/06/03 21:43
 public static String toString(Object obj) {
        List<String> hiddens = new ArrayList<String>();
        Class<?> clazz = obj.getClass();
        while (clazz != ToString.class && clazz != Object.class) {
            for (Field f : clazz.getDeclaredFields()) {
                LogHidden hidden = f.getAnnotation(LogHidden.class);
                if (null != hidden) {
                    hiddens.add(f.getName());
                }
            }
            clazz = clazz.getSuperclass();
        }
        if (hiddens.size() == 0) {
            return ToStringBuilder.reflectionToString(obj, ToStringStyle.SHORT_PREFIX_STYLE);
        }
        return new ReflectionToStringBuilder(obj, ToStringStyle.SHORT_PREFIX_STYLE)
            .setExcludeFieldNames(hiddens.toArray(new String[hiddens.size()])).toString();

    }


@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface LogHidden {


}

0 0
原创粉丝点击