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

Popular posts from this blog

curl - PHP fsockopen help required -

HTTP/1.0 407 Proxy Authentication Required PHP -

java - More than one row with the given identifier was found: 1, for class: com.model.Diagnosis -