Scala:如何获取案例类的属性名称

时间:2018-08-15 06:39:37

标签: scala

我是Scala的新手,我的案例类别为“ Lr”。我需要将所有属性名称打印为以制表符分隔的标题,例如:

some1_ID    some2_ID

但是我得到了答案:

value some1_ID  value some2_ID

我可以获取有关如何修改代码以获取正确答案的帮助吗?

package com.......

case class Lr (
  some1_ID : Option[String],
  some2_ID : Option[String]
)

object EchoLr {

  def classAccessors[T: TypeTag]: String = typeOf[T].members.collect { 
    case m: MethodSymbol if m.isCaseAccessor => m
  }.mkString("\t")

  def main( args:Array[String] ):Unit = {
    val testLR = Lr(Option("something1"),Option("something2"))
    println(classAccessors[Lr])
  }
}

我正在关注:

Get field names list from case class

1 个答案:

答案 0 :(得分:2)

替换

case m: MethodSymbol if m.isCaseAccessor => m

作者

case m: MethodSymbol if m.isCaseAccessor => m.name