How To Access access Case class field Value from String name of the field

前端 未结 3 2056
忘掉有多难
忘掉有多难 2021-01-04 19:51

How should I extract the value of a field of a case class from a given String value representing the field.

For example:

case class Person(name: Stri         


        
3条回答
  •  一个人的身影
    2021-01-04 20:27

    I think it can do by convert case class to Map, then get field by name

    def ccToMap(cc: AnyRef) =
      (Map[String, Any]() /: cc.getClass.getDeclaredFields) {
         (a, f) =>
         f.setAccessible(true)
         a + (f.getName -> f.get(cc))
    }
    

    Usage

    case class Person(name: String, age: Int)
    
    val column = Person("me", 16)
    println(ccToMap(column))
    val name = ccToMap(column)["name"]
    

提交回复
热议问题