Проблема с типом (выводом) скалы?

Я разрабатываю веб-сервис REST в Scala, используя Jersey JAX-RS реализацию ссылки, и получаю странную ошибку.

Я пытаюсь создать объект ContentDisposition, используя ContentDisposition.ContentDispositionBuilder.

ContentDisposition.ContentDispositionBuilder имеет два типа T расширяет ContentDisposition.ContentDispositionBuilder и V расширяет ContentDisposition. Метод тип из ContentDisposition возвращает экземпляр сборщика.

Код

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()
                                                                                                         ^

(Обратите внимание, что тип T необходимо поместить в "кавычки", так как это ключевое слово в Scala)

fileName из ContentDispositionBuilder возвращает экземпляр T, так что на самом деле это должно сработать.

Я не понимаю. Есть идеи? Кстати, я использую Scala 2.9.0.1.

Обновление:

Это работает. Но почему мне нужно приводить здесь?

val contentDisposition = ContentDisposition.`type`(MediaType.APPLICATION_OCTET_STREAM)
  .fileName("dummy")
  .asInstanceOf[ContentDisposition.ContentDispositionBuilder[_,_]]
  .build()

7
задан Sven Jacobs 31 August 2011 в 07:45
поделиться