Что обозначает это выражение?
private static final Predicate<Object> removeDotPred = symbol -> !MULTI_ARGS_SIGNAL.equals(symbol);
В частности, интересно, что значит знак "->".
В Java 8 появились лямбда выражения.
Lambda-выражения – это что-то вроде анонимных функций. Если попроще — это метод без объявления, т.е. без модификаторов доступа, возвращающие значение и имя. Они позволяют написать метод и сразу же использовать его.
Lambda-выражения в Java обычно имеют следующий синтаксис (аргументы) -> {тело}. Например:
(арг1, арг2...) -> { тело }
(тип1 арг1, тип2 арг2...) -> { тело }
Далее идет несколько примеров настоящих Lambda-выражений:
(int a, int b) -> { return a + b; }
() -> System.out.println("Hello World");
(String s) -> { System.out.println(s); }
() -> 42
() -> { return 3.1415 };
Структура lambda-выражений может быть разной:
(int a) можно записать и так (a)Параметры заключаются в круглые скобки и разделяются запятыми.
Пример: (a, b) или (int a, int b) или (String a, int b, float c)
Если параметров нет, то нужно использовать пустые круглые скобки.
Пример: () -> 42
Когда параметр один, если тип не указывается явно, скобки можно опустить.
Пример: a -> return a*a
void).В Вашем случае symbol -> !MULTI_ARGS_SIGNAL.equals(symbol); - это один входной параметр symbol, а тело состоит из одного оператора, а значит можно не указывать ключевое слово return, но оно подразумевается....
по старому это будет как-то так:
public boolean Test(symbol) {
returm !MULTI_ARGS_SIGNAL.equals(symbol);
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости