How can I easily get a Scala case class's name?

前端 未结 6 1539
刺人心
刺人心 2021-01-31 13:32

Given:

case class FirstCC {
  def name: String = ... // something that will give \"FirstCC\"
}
case class SecondCC extends FirstCC
val one = FirstCC()
val two =          


        
6条回答
  •  刺人心
    刺人心 (楼主)
    2021-01-31 14:27

    You can use the property productPrefix of the case class:

    case class FirstCC {
      def name = productPrefix
    }
    case class SecondCC extends FirstCC
    val one = FirstCC()
    val two = SecondCC()
    
    one.name
    two.name
    

    N.B. If you pass to scala 2.8 extending a case class have been deprecated, and you have to not forget the left and right parent ()

提交回复
热议问题