#scala #scalatra
Вопрос:
У меня есть действие, которое возвращает Unit
:
post("/settings") {
blahblahblah...
Unit
}
Ранее клиент получил пустой ответ.
Но после того, как я обновил версию Scalatra с 2.5.0 до 2.7.1 и Java с 8 до 11, ответ теперь содержит следующий текст:
object scala.Unit
Как я могу это исправить?
Комментарии:
1. Не могли бы вы уточнить «объект scala. Единица стала клиентом в теле» ?
2. Внутри ответа Chrome показывает объект scala.Unit…
Ответ №1:
Возвращает Unit
значение ()
вместо Unit
сопутствующего объекта (который имеет тип Unit.type
и не является экземпляром типа Unit
).
post("/settings") {
blahblahblah...
()
}
В scala 2.13 ваш код просто больше не будет компилироваться. Вы получаете сообщение об ошибке:
`Unit` companion object is not allowed in source; instead, use `()` for the unit value
Комментарии:
1. Почему раньше возвращаемое устройство работало правильно?
2. Я не знаю скалатру. Возможно, тип
Unit
был выведен по какой-то причине, что приводит()
к вставке значения компилятором.3. Хм… Это сработало, но я все еще не понимаю, почему это работало раньше, но теперь это не так=( Если я не ошибаюсь, то () =Единица измерения