【发布时间】:2020-07-20 16:00:01
【问题描述】:
考虑以下代码:
sealed trait Foo {
def name: String
}
case object FooA extends Foo {
override val name: String = "a"
}
case object FooB extends Foo {
override val name: String = "b"
}
object Foo {
def fromString(name: String): Foo = {
name match {
case FooA.name => FooA
case FooB.name => FooB
}
}
我可以重构 fromString() 方法以避免每个案例对象实例都有一个案例吗?一些更通用的代码能够枚举所有 Foo 实例?
在我的真实版本中,我开始有很多case对象,case bla.name => bla的墙让我很无聊^^
谢谢:)
【问题讨论】:
-
Enumeratum 库可能会为您提供所需的帮助。
-
你可以看看stackoverflow.com/questions/13671734/… 有类似的问题
-
是的,在这一点上它实际上几乎是重复的。谢谢,没找到^^'
标签: scala