title: Remove a listener when the listener executes
body: <p>I have a special case where I want to add a listener to a visible property, and then have the listener removed when the property is no longer visible.  I only want the listener to fire one time and then be removed.</p>
  
  <p>ie</p>
  
  <pre><code>ChangeListener&lt;Boolean&gt; listener= (obs, ov, nv) -&gt; {
      if(!nv){
          //do my processing
          node.visibleProperty().removeListener(listener);                    }
          }
      };
  node.visibleProperty().addListener(listener);
  </code></pre>
  
  <p>However it tells me that the variable listener may not have been initialized.  If I try by making it null, then creating it, it complains that it is not effectively final</p>
  
  <p>Is this possible?</p>