我正在 Scala 中使用以下方法开发 REST Web 服务Jersey http://jersey.java.net/JAX-RS 参考实现,我收到一个奇怪的错误。
我正在尝试创建一个内容配置 http://jersey.java.net/nonav/apidocs/latest/jersey/com/sun/jersey/core/header/ContentDisposition.html对象使用ContentDisposition.ContentDispositionBuilder http://jersey.java.net/nonav/apidocs/latest/jersey/com/sun/jersey/core/header/ContentDisposition.ContentDispositionBuilder.html.
ContentDisposition.ContentDispositionBuilder
有两种类型T extends ContentDisposition.ContentDispositionBuilder
and V extends ContentDisposition
。方法type
of ContentDisposition
返回一个构建器实例。
The code
val contentDisposition = ContentDisposition.`type`(MediaType.APPLICATION_OCTET_STREAM).build()
然而有效
val contentDisposition = ContentDisposition.`type`(MediaType.APPLICATION_OCTET_STREAM).fileName("dummy").build()
产生编译器错误
error: value build is not a member of ?0
val contentDisposition = ContentDisposition.`type`(MediaType.APPLICATION_OCTET_STREAM).fileName("dummy").build()
^
(注意type
需要放在“引号”中,因为它是 Scala 中的关键字)
fileName
of ContentDispositionBuilder
返回一个实例T
所以这实际上应该有效。
我不明白这一点。任何想法?
顺便说一句,我正在使用 Scala 2.9.0.1。
Update:
这有效。但为什么我需要在这里选角呢?
val contentDisposition = ContentDisposition.`type`(MediaType.APPLICATION_OCTET_STREAM)
.fileName("dummy")
.asInstanceOf[ContentDisposition.ContentDispositionBuilder[_,_]]
.build()