Alle Attributänderungen einer Klasse protokollieren
Für Debugging-Zwecke muss ich a nachverfolgenClass
Attributänderungen.
Betrachten Sie zum Beispiel die folgende Klasse:
class Test {
int myInt;
String myString;
...
public void setMyInt(int a) ...
public void setMyString(String s) ...
public printDebugLog();
}
void main() {
Test t = new Test();
t.setMyInt(5);
t.setMyString("Hello");
t.printDebugLog();
}
Ich möchte folgendes ausgeben:
myInt => 5
myString => Hello
Die einfache Lösung besteht darin, sofort Protokolle zu erstellen. Hinzufügen von aLog
Funktion wie folgt:
void Log(String s) {
System.out.println(s);
}
und dann dieeinstellen funktioniert wie folgt:
void setMyString(String s) {
myString = s;
Log("myString => " + s);
}
das erfordert alleseinstellen funktionen unterschiedlich geschrieben werden und ich frage mich, ob es welche gibtbesser Lösung für solche Angelegenheit. Zum Beispiel könnte es (wenn möglich) einfacher sein, eineSetValue
Funktion, die zwei Variablen akzeptiert und das erste Attribut auf den Wert des zweiten Objekts setzt. oder sowas.
Irgendeine Idee?