Estoy desarrollando un servicio web REST en Scala utilizando la implementación de referencia JAX-RS Jersey y me aparece un error extraño.Problema de tipo Scala (inferencia)?
Estoy tratando de crear un objeto ContentDisposition usando el ContentDisposition.ContentDispositionBuilder.
tiene T extends ContentDisposition.ContentDispositionBuilder
y V extends ContentDisposition
. El método type
de ContentDisposition
devuelve una instancia del generador.
el código
val contentDisposition = ContentDisposition.`type`(MediaType.APPLICATION_OCTET_STREAM).build()
obras embargo
val contentDisposition = ContentDisposition.`type`(MediaType.APPLICATION_OCTET_STREAM).fileName("dummy").build()
produce el error del compilador
error: value build is not a member of ?0
val contentDisposition = ContentDisposition.`type`(MediaType.APPLICATION_OCTET_STREAM).fileName("dummy").build()
^
(Tenga en cuenta que type
necesita ser puesto en "comillas" porque es una palabra clave en Scala)
fileName
de ContentDispositionBuilder
devuelve una instancia de T
por lo que esto realmente debería funcionar.
No entiendo esto. ¿Alguna idea? Estoy usando Scala 2.9.0.1 por cierto.
Actualización:
Esto funciona. Pero, ¿por qué necesito el casting aquí?
val contentDisposition = ContentDisposition.`type`(MediaType.APPLICATION_OCTET_STREAM)
.fileName("dummy")
.asInstanceOf[ContentDisposition.ContentDispositionBuilder[_,_]]
.build()
¿Soy yo o ninguno de sus enlaces parecen funcionar? – agilesteel
Parece que java.net está caído en este momento :-( –
El error tiene algo que ver con la interpolación entre los comodines de Java y los existenciales de Scala. Aunque similares, estas dos características del sistema de tipo no son las mismas. Esta es una toma en la oscuridad , pero podría valer la pena intentarlo con el recién publicado Scala 2.9.1. –