Tôi đang phát triển một dịch vụ web REST trong Scala bằng cách sử dụng triển khai tham chiếu JAX-RS Jersey và tôi nhận được một lỗi lạ.Vấn đề kiểu Scala (suy luận)?
Tôi đang cố tạo đối tượng ContentDisposition bằng cách sử dụng ContentDisposition.ContentDispositionBuilder.
ContentDisposition.ContentDispositionBuilder
có hai loại T extends ContentDisposition.ContentDispositionBuilder
và V extends ContentDisposition
. Phương thức type
của ContentDisposition
trả về phiên bản trình tạo.
Mã
val contentDisposition = ContentDisposition.`type`(MediaType.APPLICATION_OCTET_STREAM).build()
tác phẩm tuy nhiên
val contentDisposition = ContentDisposition.`type`(MediaType.APPLICATION_OCTET_STREAM).fileName("dummy").build()
tạo ra lỗi biên dịch
error: value build is not a member of ?0
val contentDisposition = ContentDisposition.`type`(MediaType.APPLICATION_OCTET_STREAM).fileName("dummy").build()
^
(Lưu ý rằng type
cần phải được đưa vào "dấu ngoặc kép" vì đó là một từ khóa ở Scala)
fileName
của ContentDispositionBuilder
trả về phiên bản T
để điều này thực sự hoạt động.
Tôi không hiểu. Bất kỳ ý tưởng? Tôi đang sử dụng Scala 2.9.0.1 bằng cách này.
Cập nhật:
này hoạt động. Nhưng tại sao tôi cần đúc ở đây?
val contentDisposition = ContentDisposition.`type`(MediaType.APPLICATION_OCTET_STREAM)
.fileName("dummy")
.asInstanceOf[ContentDisposition.ContentDispositionBuilder[_,_]]
.build()
là nó chỉ cho tôi hay không ai trong số các liên kết của bạn dường như làm việc? – agilesteel
Có vẻ như java.net đang ở thời điểm hiện tại :-( –
Lỗi này có liên quan đến việc tương tác giữa các ký tự đại diện Java và các hiện tượng Scala.Đặc biệt tương tự, hai tính năng hệ thống kiểu này không giống nhau. , nhưng nó có thể là giá trị cố gắng với Scala 2.9.1 vừa được phát hành –