Print-Objekt Informationen wie toString() ohne toString()?
meine Frage ist, ist es möglich, das ausdrucken von bestimmten Informationen aus einer Klasse, die keine toString () - Methode in JAVA?
Da ist der Haken: Wir bieten einen logger für unsere Anwendung (Verwendung von aspectJ), die druckt die spezifischen Argumente, die da waren. Zum Beispiel:
public void addGroupMembers(Group group, String doneBy, DataListModel<User> users) {
doSomething()
}
Und unsere Logger druckt die folgenden:
addGroupMembers called with given arguments:
Group = [id = ..... and so on]
username
DataListModel$1231 <-
Haben wir die Verwendung der DataListModel-Klasse, denn wir arbeiten mit JSF im hintergrund. Aber, wie Sie sehen können, ist diese Klasse nicht bieten eine toString-Methode.
Unserer logger geschrieben wird, von uns selbst, damit wir anpassen können, die. Ist es möglich zu simulieren, eine toString-Methode, wie: Falls die Klasse nicht bieten eine toString -, catch-all Ihre Felder, und drucken Sie Sie?
Oder gibt es eine andere Möglichkeit?
Vielen Dank im Voraus für Ihre Hilfe.
Grüße, Thunderhook
- Es ist nicht klar, wer "Eigentümer" der DataListModel Klasse... aber es klingt wie etwas, das Sie wollen, um zu konfigurieren, auf den Aspekt, wenn Sie nicht hinzufügen die
toString
Methode selbst.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nutzen Sie ReflectionToStringBuilder. So etwas wie:
Ich habe dies ein paar mal gemacht mit der spiegelung. Ich hatte eine generische Methode, die im wesentlichen
dumpObject
das iterieren über die Felder und legen Sie Sie auf eine Schnur. Dies funktioniert gut, aber sicher sein, zu prüfen Leistung, wenn Sie fordern, diese oft - könnte es besser sein, codieren Sie die tostring-Methode. z.B.,