Я начинаю с лямбда-выражений в Java, и есть что-то, что я считаю причудливым, и я уверен, что я делаю что-то неправильно или у него есть обходное решение.
Чтобы определить компаратор, я могу сделать:
col.setComparator((CustomCell o1, CustomCell o2) ->
((Comparable) o1.getValue()).compareTo(o2.getValue())
);
Это здорово, если я просто добавлю два "{". Я получаю ошибку компиляции:
col.setComparator((CustomCell o1, CustomCell o2) -> {
((Comparable) o1.getValue()).compareTo(o2.getValue());
});
Ошибка не связана с "{", но < <22 > :
The method setComparator(Comparator<CustomCell>) in the type
TableColumnBase<CustomParentCell,CustomCell> is not applicable for the arguments
((CustomCell o1, CustomCell o2) -> {})
Я попытался использовать многострочные операторы раньше для actionevents, и он работает:
setOnAction(event -> {
// do something
});
Это потому, что у него есть только один аргумент?