java - Why is ReadOnlyDoubleProperty not a Double? -
i found javafx piece of code on internet doesn't compile.
tableview.widthproperty().addlistener(new changelistener< double >(){ @override public void changed(final observablevalue<? extends double> observablevalue, final double adouble, final double adouble2) { //to change body of implemented methods use file | settings | file templates. } }); the error shown intellij is:
cannot resolve method 'addlistener(javafx.beans.value.changelistener<'java.lang.double>)'
on other hand, compiles , works great.
tableview.widthproperty().addlistener(new changelistener<number>() { @override public void changed(final observablevalue<? extends number> observablevalue, final number number, final number number2) { //to change body of implemented methods use file | settings | file templates. } }); as can see difference here new changelistener uses number , not double (which extends number).
the widthproperty readonlydoubleproperty extends doubleexpression , implements readonlyproperty<'java.lang.number>.
this may basic java, don't see why doesn't compile, others.
according documents, readonlydoubleproperty implements observablevalue<number>, have method void addlistener(changelistener<? super number> listener)
so need pass in changelistener<t> t super type of number or number itself. double not super type of number, cannot pass in changelistener<double>.
Comments
Post a Comment