Lambda výraz je jiný způsob zápisu anonymních tříd v Javě.
Lambda
Arrays.sort(pole, (String first, String second) -> {
return Integer.compare(first.length(), second.length());
});
Anonymní třída
Arrays.sort(pole, new Comparator() {
@Override
public int compare(String first, String second) {
return Integer.compare(first.length(), second.length());
}
});
Lambda výraz je možné použít proto, že Comparator je funkční rozhraní. To znamená, že toto rozhraní má jedinou abstraktní metodu. Pro tato rozhraní se používá anotace @FunctionalInterface. Tato anotace není povinná a pouze kontroluje, zda dané rozhraní splňuje podmínky funkčního rozhraní.