Sto iniziando con le espressioni lambda in Java e c'è qualcosa che considero bizzarro e sono sicuro che sto facendo qualcosa di sbagliato o che ha una soluzione.Comparatore lambda multilinea
Per definire un comparatore, che posso fare:
col.setComparator((CustomCell o1, CustomCell o2) ->
((Comparable) o1.getValue()).compareTo(o2.getValue())
);
Che è grande, tuttavia, se ho solo aggiungere due "{". Ottengo un errore di compilazione:
col.setComparator((CustomCell o1, CustomCell o2) -> {
((Comparable) o1.getValue()).compareTo(o2.getValue());
});
L'errore non è correlato al "{", ma per setComparator
:
The method setComparator(Comparator<CustomCell>) in the type
TableColumnBase<CustomParentCell,CustomCell> is not applicable for the arguments
((CustomCell o1, CustomCell o2) -> {})
Ho provato con le normative più righe prima per ActionEvents e lo fa di lavoro:
setOnAction(event -> {
// do something
});
È perché ha solo un argomento?
Grazie. Sì, questa è la ragione. L'errore che stavo ottenendo non era molto utile. – luanjot