Перебирайте поля класса и все поля его подкласса до примитива - PullRequest
0 голосов
/ 09 февраля 2019

Предположим, у нас есть класс, определенный следующим образом:

case class sth(f1: String,
               f2: Option[String],
               f3: Map[String, sth2],
               f4: Array[sth2],
        )

case class sth2(subF1: String, subF2: List[sth3])
case class sth3(subF:String)

В любом случае мы можем перебрать класс sth, чтобы получить все поля и их типы (включая все его подклассы вплоть до примитивов)) и сохранить их в строку json?

В настоящее время я пытаюсь

import scala.reflect.runtime.universe._
import scala.reflect.ClassTag
import scala.reflect.runtime.universe.TypeTag
def traverseCaseClassFields[T:TypeTag](): Unit={ 
    typeOf[T].members.filter(!_.isMethod).foreach{ x=>  x.typeSignature}

, но безуспешно, так как я не смог извлечь sth2 из массива [sth2] и сделать это рекурсивно

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...