gpt4 book ai didi

Scala 类型(推理)问题?

转载 作者:行者123 更新时间:2023-12-04 12:49:19 25 4
gpt4 key购买 nike

我正在使用 Jersey 在 Scala 中开发 REST web 服务JAX-RS 引用实现,我收到一个奇怪的错误。

我正在尝试创建一个 ContentDisposition对象使用 ContentDisposition.ContentDispositionBuilder .
ContentDisposition.ContentDispositionBuilder有两种类型T extends ContentDisposition.ContentDispositionBuilderV extends ContentDisposition .方法typeContentDisposition返回一个构建器实例。

编码

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 中的关键字)
fileNameContentDispositionBuilder返回 T 的实例所以这实际上应该有效。

我不明白这个。任何的想法?
顺便说一下,我正在使用 Scala 2.9.0.1。

更新:

这有效。但是为什么我需要这里的类型转换?
val contentDisposition = ContentDisposition.`type`(MediaType.APPLICATION_OCTET_STREAM)
.fileName("dummy")
.asInstanceOf[ContentDisposition.ContentDispositionBuilder[_,_]]
.build()

最佳答案

我猜类型推断只能到此为止……您可能可以用两行来完成,而无需进行任何强制转换;你试过这个吗?

val something=ContentDisposition.`type`(MediaType.APPLICATION_OCTET_STREAM)
val contentDisposition=something.fileName("dummy").build()

或者可能
val builder=ContentDisposition.`type`(MediaType.APPLICATION_OCTET_STREAM).fileName("dummy")
val contentDisposition=builder.build()

关于Scala 类型(推理)问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7253779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com