import java.util.Map; import java.util.Properties; import java.util.Timer; import java.util.TimerTask; public class ChangingVarWatched { private Object[] props = System.getProperties().keySet().toArray(); private String test = "TEST"; private Properties p = System.getProperties(); private Map env = System.getenv(); public static void main(String[] args) { final Timer timer = new Timer(); timer.schedule(newTask(timer), 1000); new ChangingVarWatched().test(); } public static TimerTask newTask(final Timer oldTimer) { return new TimerTask() { @Override public void run() { oldTimer.cancel(); final Timer newTimer = new Timer(); newTimer.schedule(newTask(newTimer), 1000); } }; } ChangingVarWatched getChangedObject() { return new ChangingVarWatched(); } private void test() { System.out.println(test); } }