Что произойдет, если мы добавим другой тип параметра в интерфейс функции лямбда-выражения? - PullRequest
0 голосов
/ 30 августа 2018

Я учу лямбда-выражения. Я столкнулся со сценарием, который можно понять по следующему коду:

Function<Integer,String> fn = (String s)->s;

В вышеприведенном выражении лямбда-выражения я знаю, что функция принимает аргумент и возвращает упомянутый тип. Но почему мы упоминаем тип аргумента (здесь это Integer) в части «Функция», тогда как аргументы должны передаваться внутри «()». Я знаю, что это часть синтаксиса, но я просто хочу понять момент, когда он может быть полезен. Он запускается, даже если мы передадим другой тип аргумента (String)?

1 Ответ

0 голосов
/ 30 августа 2018

Прежде всего написанное вами Function неверно. Это должно быть исправлено, как показано ниже.

Function<Integer, String> fn = s -> String.valueOf(s);

Вы не можете указать другой тип данных, как указано выше, единственное, что вы можете указать, это целое число. Любой другой тип данных в качестве входного параметра приведет к ошибке компиляции. Тип данных параметра лямбда-функции является необязательным и определяется компилятором.

...