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