2017-12-12 5 views
1

Ich habe ein toString implementiertes Verfahren wie unten geschrieben:Wie kann ich ReflectionToStringBuilder verwenden und Datumsangaben als lesbare Strings formatieren?

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

Diese gut funktioniert, aber Zeitmarken (und ich nehme an, Daten) werden als reiner toString auf dem Objekt würde zeigen, gezeigt:

[email protected][ 
    nanos=0 
], 

Gibt es eine Möglichkeit zu sagen, ReflectionToStringBuilder, wie ich Date-Objekte formatiert werden möchte?

+0

Haben Sie den Javadoc gelesen? Es gibt Callbacks, mit denen Sie die Formatierung jedes zugänglichen Felds steuern können. –

Antwort

0

Ja. ReflectionToStringBuilder ermöglicht das:

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); 
    } 
    } 
} 
Verwandte Themen