Dies ist einer der vielen Gründe, Variablen hinter Setter/Getter Paare zu verbergen. Im Setter können Sie dann Ihrem Listener mitteilen, dass diese Variable in der entsprechenden Weise geändert wurde. Wie die anderen bemerkt haben, gibt es keine eingebaute Möglichkeit, genau das zu tun, was Sie wollen, Sie müssen es selbst implementieren.
Alternativ zeigt Benjamin ein interessantes Muster an, das Decorator-Muster, das für Sie nützlich sein könnte, wenn der betreffende Code nicht geändert werden kann. You can look up more info at wikipedia
Die Idee ist, einen kompatiblen Wrapper um ein Objekt zu erstellen. Nehmen wir an, Ihr Objekt ist vom Typ MyClass.
class MyClass{
publc void doFunc(){...}
}
class MyLoggedClass extends MyClass{
MyClass myObject;
publc void doFunc(){
//Log doFunc Call
myObject.doFunc();
}
}
statt
MyClass object = new MyClass();
würden Sie verwenden
MyClass object = new MyLoggedClass(new MyClass());
Jetzt Ihr Rest des Codes würde Objekt wie für normale verwenden, mit der Ausnahme, dass jeder Funktionsaufruf protokolliert werden, oder benachrichtigt usw.
Wie Sie in wikipedia sehen, wird dies in der Regel über eine Schnittstelle, die die Klasse in der Frage erbt von, aber das ist in Ihrem Fall möglicherweise nicht möglich.
Interessieren Sie sich diese zum Zweck der Fehlersuche in tut oder tun Sie dies in der Produktion Code verwenden möchten? –
in Produktionscode – Sinigami