I am using **JavaFX** properties since **JavaFX 8.0** , they seem to miss something appropriate i think . Let's say i add a change listener to a JavaFX Property :

```
 DoubleProperty doubleProp = new SimpleDoubleProperty(1);
 doubleProp.addListener((observable,oldValue,newValue)->{ ...code here }));

```

and i want to add 3 more including and `InvalidationListener`

Why to create an instances of `ChangeListener`[JavaDoc](https://docs.oracle.com/javase/8/javafx/api/javafx/beans/value/ChangeListener.html) or `InvalidationListener`[JavaDoc](https://docs.oracle.com/javase/8/javafx/api/javafx/beans/InvalidationListener.html)?

Adding lines of code like :

```
 ChangeListener<? super Number> listener = (observable , oldValue , newValue) -> {
                    if (newValue.intValue() == 1)
                        //..... code
                };

```

all over the place isn't clear.

---

Why methods like these doesn't exist:

```
doubleProp.getChangeListeners().clearAll();

```

or 

```
doubleProp.getChangeListeners().remove(doubleProp.getChangeListeners().get(0));

```

or

```
doubleProp.remove(doubleProp.getChangeListeners().get(0));

```

or 

```
doubleProp.getInvalidationListeners().get(0));

```

Does JavaFX 9.0 has methods like these ? Is what i want a bad design ? I need to know the above :).