从对象中的val定义列表

时间:2019-04-15 10:41:34

标签: scala

我这样写:

    def fields(): List[String] = List(Fields.ZONE, Fields.API, Fields.LOCATION, Fields.FACTORY)

  object Fields {
    val ZONE: String = "Zone"
    val API: String = "API"
    val LOCATION: String = "location"
    val FACTORY: String = "factory"
  }

我想找到一种在def字段中定义List的智能方法,而无需手动键入包装在Fields对象中的所有常量。 有任何建议。

最诚挚的问候

1 个答案:

答案 0 :(得分:2)

这是一种实现方式

case class FieldNames(
  ZONE: String = "Zone",
  API: String = "API",
  LOCATION: String = "location",
  FACTORY: String = "factory",
)
object Fields extends FieldNames

def fields(): List[String] = Fields.productIterator.map(_.toString).toList

这利用了case class实现Product的事实,该事实使您可以枚举类中的字段。

请注意,更常见的做法是省略()并将fields设为val

val fields: List[String] = Fields.productIterator.map(_.toString).toList
相关问题