java - incompatible return type ReadOnlyLongWrapper in lambda expression -
this question has answer here:
- javafx properties in tableview 3 answers
i'm trying create treetableview , trying set sell value factory
@fxml private treetablecolumn<good, long> folderid; here:
folderid.setcellvaluefactory((treetablecolumn.celldatafeatures<good, long> param) -> new readonlylongwrapper(param.getvalue().getvalue().getfolderid())); i underlined red error described in title. getfolderid in good class following:
public long getfolderid() { return folderid; } the same method works fine string or boolean values drops exception mentioned in title , following on compilation:
incompatible types: bad return type in lambda expression javafx.beans.property.readonlylongwrapper cannot converted javafx.beans.value.observablevalue<java.lang.long> how observablevalue<java.lang.long> instead of readonlylongwrapper , why exception appears long values?
here whole method:
goodspane.setcenter(goodtreetableview); list<good> goodandfolderslist = goodsservice.getgoods(); list<good> goods = new arraylist<good>(); list<good> roots = new arraylist<good>(); (good good: goodandfolderslist){ if (good.isis_folder()) { roots.add(good); }else { goods.add(good); } } treeitem<good> rootitem = new treeitem<>(); (good root: roots){ long folderid = root.getid(); treeitem<good> roottreeitem = new treeitem<>(root); (good good: goods){ if (good.getfolderid() == folderid){ treeitem<good> goodtreeitem = new treeitem<>(good); roottreeitem.getchildren().add(goodtreeitem); } } rootitem.getchildren().add(roottreeitem); } goodtreetableview.setroot(rootitem); goodname.setcellvaluefactory((treetablecolumn.celldatafeatures<good, string> param) -> new readonlystringwrapper(param.getvalue().getvalue().getname())); folderid.setcellvaluefactory((treetablecolumn.celldatafeatures<good, long> param) -> new readonlylongwrapper(param.getvalue().getvalue().getfolderid())); is_folder.setcellvaluefactory((treetablecolumn.celldatafeatures<good, boolean> param) -> new readonlybooleanwrapper(param.getvalue().getvalue().isis_folder()));
readonlylongwrapper observablevalue<number>.
so there 2 solutions @ hand:
- change column
treetablecolumn<good, number> folderid;or - create own implementation of
observablevalue<long>.
in cases, 1 should fine, can number.longvalue().
Comments
Post a Comment