Я пришел к той же проблеме. Исправлено это, запустив команду «rbenv global» с помощью «sudo». Я думаю, что это была проблема разрешения.
update: Я наконец нашел решение. Была одна версия файла на моем mac, которая находится под «/usr/local/Cellar/rbenv/0.3.0/». Я думаю, что это было создано по ошибке время от времени. вы должны удалить его.
Вы можете опустить фигурные скобки, когда тело лямбда является единственным выражением или вызовом метода void. Каждое выражение оценивает значение и, следовательно, не может быть пусто.
Если тело лямбда является блоком операторов (например, серия вычислений, за которой следует инструкция return
), или лямбда имеет нет значения (т. е. имеет тип возврата void
) и не является единственным вызовом метода void, вы должны использовать форму блока, для которой требуются скобки.
В блочном лямбда, если значение равно return
ed, то все возможные пути кода должны либо return
, либо throw
a Throwable
.
Если фигурных скобок нет, лямбда автоматически возвращает одно выражение после оператора ->. Таким образом, когда у вас есть лямбда, которая ничего не возвращает, вы должны использовать фигурные скобки
Я пробовал свой код и для самой современной версии JRE, я думаю, что все будет в порядке.
Ниже я ссылаюсь на документы Oracle Java.
В выражении лямбда вы должны заключать выражения в фигурные скобки (
{}
). Однако вам не нужно вставлять вызов void-метода в фигурные скобки. Например, следующее выражение является действительным лямбда-выражением:email -> System.out.println(email)
. Док объясняет достаточно четко. Надеюсь, это может решить вашу проблему.
Ссылки: https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html
email -> System.out.println(email)
" – meyertee 23 June 2013 в 16:55