多行λ比较器
我从Java中的lambda表达式开始,有一些我认为很奇怪的事情,我确信我做错了什么,或者它有一个解决方法。
要定义比较器,我可以做到:
col.setComparator((CustomCell o1, CustomCell o2) ->
((Comparable) o1.getValue()).compareTo(o2.getValue())
);
但是,如果我只是添加两个“{”,那就太好了。我收到编译错误:
col.setComparator((CustomCell o1, CustomCell o2) -> {
((Comparable) o1.getValue()).compareTo(o2.getValue());
});
该错误与“{”无关,而是与:setComparator
The method setComparator(Comparator<CustomCell>) in the type
TableColumnBase<CustomParentCell,CustomCell> is not applicable for the arguments
((CustomCell o1, CustomCell o2) -> {})
我之前尝试过将多行语句用于操作事件,它确实有效:
setOnAction(event -> {
// do something
});
是因为它只有一个参数吗?