ReflectionToStringBuilder

ReflectionToStringBuilder

我有一个toString方法实现,如下所示:

public String toString() {
    return new ReflectionToStringBuilder(this, new MultilineRecursiveToStringStyle()).toString();
}


这很好用,但是时间戳(我假设是日期)在对象上显示为纯toString会显示:

changeTime=java.sql.Timestamp@32a9d65c[
  nanos=0
],


有什么办法告诉ReflectionToStringBuilder我希望Date对象的格式如何?

最佳答案

是。 ReflectionToStringBuilder允许:

new ReflectionToStringBuilder(this) {
   @Override
   protected Object getValue(Field field) throws IllegalArgumentException, IllegalAccessException {
     if (Timestamp.class.equals(field.getType())) {
       return "convert timestamp to String";
     } else {
       return super.getValue(field);
     }
   }
}

关于java - 如何使用ReflectionToStringBuilder并将日期格式设置为可读的字符串?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47779393/

10-10 09:38