Usando Lentes em Classes Regulares Scala

As bibliotecas JSON mais populares para o Scala têm a capacidade de serializar e desserializar para as classes de casos.

Infelizmente, até que o Scala 2.11 seja lançado, há uma restrição no número de parâmetros que uma classe de caso pode ter (22 no máximo). Como uma solução alternativa para ultrapassar esse limite, é possível usar classes regulares. (por exemplo:Como posso desserializar de JSON com Scala usando classes * não-case *).

No entanto, isso perde os benefícios das classes de casos. Por exemplo, não há um construtor de cópia gerado automaticamente, e as lentes não funcionam com classes regulares, portanto, manipular a estrutura torna-se muito complicado (a menos que se torne cada campo na classe umvar, desistindo dos benefícios da imutabilidade).

Existe uma maneira de fazer com que as classes regulares se comportem mais como as classes de casos, de modo que, por exemplo, as lentes também funcionem nelas?

questionAnswers(2)

yourAnswerToTheQuestion