Note that there are some explanatory texts on larger screens.

plurals
  1. POJava Detect Variable Change Using PropertyChangeSupport and PropertyChangeListener
    primarykey
    data
    text
    <p>I'm trying to print out debug statements when some third party code changes a variable. For example, consider the following:</p> <pre><code>public final class MysteryClass { private int secretCounter; public synchronized int getCounter() { return secretCounter; } public synchronized void incrementCounter() { secretCounter++; } } public class MyClass { public static void main(String[] args) { MysteryClass mysteryClass = new MysteryClass(); // add code here to detect calls to incrementCounter and print a debug message } </code></pre> <p>I don't have the ability to change the 3rd party MysteryClass, so I thought that I could use PropertyChangeSupport and PropertyChangeListener to detect changes to the secretCounter:</p> <pre><code>public class MyClass implements PropertyChangeListener { private PropertyChangeSupport propertySupport = new PropertyChangeSupport(this); public MyClass() { propertySupport.addPropertyChangeListener(this); } public void propertyChange(PropertyChangeEvent evt) { System.out.println("property changing: " + evt.getPropertyName()); } public static void main(String[] args) { MysteryClass mysteryClass = new MysteryClass(); // do logic which involves increment and getting the value of MysteryClass } } </code></pre> <p>Unfortunately, this did not work and I have no debug messages printed out. Does anyone see what is wrong with my implementation of the PropertyChangeSupport and Listener interfaces? I want to print a debug statement whenever incrementCounter is called or the value of secretCounter changes.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload