【问题标题】:Response object scala.Unit响应对象 scala.Unit
【发布时间】:2021-06-28 14:38:38
【问题描述】:

我有一个返回Unit的操作:

post("/settings") {
      blahblahblah...
      Unit
    }

之前,客户端收到一个空响应。

但是在我将 Scalatra 版本从 2.5.0 升级到 2.7.1 并将 Java 从 8 升级到 11 之后,响应现在包含以下文本:

object scala.Unit

我该如何解决这个问题?

【问题讨论】:

  • 你能否澄清一下“scala.Unit 对象在体内变成了客户端”
  • 在响应中,Chrome 显示对象 scala.Unit...

标签: scala scalatra


【解决方案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

【讨论】:

  • 为什么之前返回 Unit 可以正常工作?
  • 我不知道 scalatra。可能由于某种原因推断出类型 Unit,导致编译器插入值 ()
  • 嗯...它的工作,但我仍然不明白为什么它之前工作,但现在它没有=(如果我没记错的话,那么()=单位
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-16
  • 2018-11-27
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多