Jersey JAX-RS 참조 구현을 사용하여 스칼라에서 REST 웹 서비스를 개발 중이며 이상한 오류가 발생합니다.스칼라 유형 (추론) 문제가 있습니까?
ContentDisposition.ContentDispositionBuilder을 사용하여 ContentDisposition 개체를 만들려고합니다.
ContentDisposition.ContentDispositionBuilder
에는 T extends ContentDisposition.ContentDispositionBuilder
과 V extends ContentDisposition
의 두 가지 유형이 있습니다. 메소드 type
이 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()
^
(이 키워드이기 때문에 type
필요 "따옴표"에 넣어 수 있습니다 스칼라에서)
fileName
의 ContentDispositionBuilder
은 T
의 인스턴스를 반환하므로 실제로 작동해야합니다.
나는 이것을 얻지 못한다. 어떤 생각? 그런데 스칼라 2.9.0.1을 사용하고 있습니다.
업데이트 :이 작동
. 그런데 왜 내가 여기 캐스팅이 필요한거야?
val contentDisposition = ContentDisposition.`type`(MediaType.APPLICATION_OCTET_STREAM)
.fileName("dummy")
.asInstanceOf[ContentDisposition.ContentDispositionBuilder[_,_]]
.build()
은 그냥 날인가, 아니면 당신의 연결 중 어느 것도 제대로 작동하지? – agilesteel
java.net이 잠시 중단 된 것 같습니다 :-( –
자바 와일드 카드와 스칼라 존재 사이의 interop과 관련된 오류가 있습니다. 비슷하지만이 두 유형의 시스템 기능은 동일하지 않습니다. 그러나 스컬라 2.9.1에서 방금 시도해 볼 가치가 있습니다. –