2011-08-31 21 views
7

Scala'da Jersey JAX-RS referans uygulamasını kullanarak bir REST web servisi geliştiriyorum ve garip bir hata alıyorum.Scala tipi (çıkarım) sorunu?

ContentDisposition.ContentDispositionBuilder'u kullanarak ContentDisposition nesnesini oluşturmaya çalışıyorum.

ContentDisposition.ContentDispositionBuilder, iki tür T extends ContentDisposition.ContentDispositionBuilder ve V extends ContentDisposition sahiptir. ContentDisposition'un type yöntemi, bir oluşturucu örneği döndürür.

kod

val contentDisposition = ContentDisposition.`type`(MediaType.APPLICATION_OCTET_STREAM).build() 

eserler ancak

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

derleyici hatası üretir

error: value build is not a member of ?0 
val contentDisposition = ContentDisposition.`type`(MediaType.APPLICATION_OCTET_STREAM).fileName("dummy").build() 
                             ^

(bu bir anahtar kelime çünkü type ihtiyaçlar "tırnak" konulmak unutmayın Scala'da)

'un fileName'un'ı T bir örneğini döndürür, bu nedenle bu gerçekten çalışmalıdır.

Bunu anlamıyorum. Herhangi bir fikir? Bu arada Scala 2.9.0.1 kullanıyorum.

Güncelleme: Bu işleri

. Ama neden buradaki dökümlere ihtiyacım var?

+0

Sadece bana mı ya da linklerin hiçbiri çalışmıyor gibi görünüyor? – agilesteel

+0

Görünüşe göre java.net şu anda çalışmıyor :-( –

+1

Hata, Java joker karakterleri ve Scala varoluşları arasında birlikte çalışacak bir şey var.Ancak benzer olsa da, bu iki tip sistem özellikleri aynı değil. Ancak, yeni Scala 2.9.1 ile denemeye değer olabilir. –

cevap

2

Sanırım tür çıkarsama yalnızca şu ana kadar gidebilir ... Büyük olasılıkla iki satır halinde yapabilirsin, herhangi bir döküm yapmak zorunda kalmadan; Bunu denedin mi?

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

ya da belki

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