Scala V < 2.11의 고유 한 버그 (기능?) 인 악명 높은 "22 개 필드/매개 변수"문제와 관련된 몇 가지 다른 문제를 보았습니다. here 및 here을 참조하십시오. 그러나이 blog post에 따라 case class
의 22 매개 변수 제한이 수정 된 것 같습니다. 적어도 언어가 관련된 곳.22 개 이상의 매개 변수가있는 Play Framework 및 사례 클래스 사용
Play 라이브러리를 사용하여 나중에 JSON 객체로 읽어 들이게 될 임의의 (읽기 :> 22) 값을로드하려는 case class
이 있습니다.
그것은이 같은 같습니다
object L {
import play.api.libs.json.Reads. _
import play.api.libs.functional.syntax._
implicit val responseRead: Reads[L] = (
MyField1.jsPath.Read[MyField1.t] and
MyField2.jsPath.Read[MyField2.t] and
...
MyField35.jsPath.Read[MyField35.t]
) (L.apply _)
}
case class L(myField1: MyField1.t, myField2: MyField2.t, ... myField35: MyField35.t)
문제는 컴파일에 즉을, 스칼라는 case class
에서 22 개 이상의 매개 변수가 있음을 뿌려줍니다. (구체적으로 : 객체 정의의 마지막 줄에서 컴파일러가 빌드를 시도 할 때 "구현은 22 개 매개 변수로 함수를 제한합니다.") 현재 스칼라 v2.11.6을 사용하고 있으므로 은으로 생각하지 않습니다. 언어 문제. Play 라이브러리가 Read
의 구현을 업데이트하지 않았다고 생각합니다.
그럴 경우 관련 필드를 튜플에 그룹화하고 튜플을 JSON API를 통해 전달하는 것이 가장 좋습니다.