I have a simple code with function which gets weakTypeOf case class and returns its fields, predictably we get 2 items list
def getMembers[T: WeakTypeTag] =
weakTypeOf[T].members.filterNot(_.isMethod).toList
final case class Person(name: String, age: Int) extends Models
val fields = getMembers[Person]
println(fields.length) // 2
It works fine
But what if i want to get members from trait where i passed Person as type parameter when create a child object class? (WeakTypeTag i can not pass to trait during construction)
trait ModelManager[CCT] {
def getMembers: List[String] = ???
}
case object PersonManager extends ModelManager[Person]
val fields = PersonManager.getMembers
println(fields.length)
Is there any way to get weakTypeOf from CCT parameter?