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?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage