我这样写:
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对象中的所有常量。 有任何建议。
最诚挚的问候
答案 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