我在某处看到了枚举的以下解决方案
object Day {
val values = new ArrayBuffer[Day]
case class Day(name:String) {
values += this
}
val MONDAY = new Day("monday")
val TUESDAY = new Day("tuesday")
}
这证明了我想做的,除了ArrayBuffer中隐藏了一个var......这有点令人讨厌。
我真正想要的是val lookupTable=Map(),当一个请求进来时,我可以查找“星期一”并将其转换为我的枚举星期一并在整个软件中使用枚举。这通常是如何做到的。我看到了密封的特征,但没有看到一种方法来自动确保当有人添加扩展它的类时,它会自动添加到查找表中。有没有办法使用查找表创建一个scala枚举?
scala枚举似乎很接近,因为它有一个values()方法,但我不知道如何传入表示我们从用户那里收到的天数的字符串,然后将其转换为枚举。
谢谢迪恩
我看到了密封的特征,但没有看到一种方法来自动确保当有人添加扩展它的类时,它会自动添加到查找表中。有没有办法使用查找表创建scala枚举
我在这里创建了一个可能有用的小库,名为Enumeratum。其用途如下:
import enumeratum._
// entryName is for serdes, customise it as you'd like
sealed abstract class Day(val entryName: String) extends EnumEntry
case object Day extends Enum[Day] {
// This will add Day entries declared below into a map at compile time, automagically
val values = findValues
case object MONDAY extends Day("monday")
case object TUESDAY extends Day("tuesday")
// etc
}
Day.withName("monday") // => returns MONDAY
更新以向您展示如何重命名枚举val、添加其他构造函数参数以及如何向枚举添加其他方法。
object Currency extends Enumeration {
sealed case class CurrencyVal(name: String, value: Int) extends Val(name) {
def *(n: Int): Int = n * value
}
val PENNY = CurrencyVal("penny", 1)
val NICKLE = CurrencyVal("nickle", 5)
val DIME = CurrencyVal("dime", 10)
val QUARTER = CurrencyVal("quarter", 25)
override def withName(name: String): CurrencyVal = {
super.withName(name).asInstanceOf[CurrencyVal]
}
}
如果你没有用name覆盖,那么你会得到一种货币。值,而不是货币。CurrencyVal(当前值)。
我不确定我是否过度工程化了,但我正在考虑创建一个枚举,其中包含一个枚举列表作为它的值,从中我可以得到它的值。 我无法确定枚举的类型,以便正确地将值数组筛选到正确的枚举。例如,我可以用轻松地获得US枚举。我遇到的困难是从该数组中获得正确的值。我尝试比较名称,
问题内容: 目前,我们的代码存在一种情况,即我们在Java层中使用枚举,该枚举通过以下构造函数存储id和“显示值”: 我们希望打字稿中的某些内容能够与之匹配,以便以有意义的方式显示状态以执行逻辑并在前端向用户显示值。这可能吗?有没有更好的方法来解决这个问题?我们希望避免使用诸如status.id()= 1或status.name()=’Active’这样的逻辑,从而推动枚举。 谢谢 问题答案: T
我正在尝试实现一个链表。 列表有私有变量*头,*尾,计数。 我理解数据结构中的逻辑,但不可否认,我是C语言的新手,所以我觉得我可能没有正确地使用构造函数。 *head和*tail是列表节点指针。然后,列表节点具有指向上一个和下一个(双链接列表)的指针。 以下是我尝试过的: 我的程序可以编译,但当它试图使用此构造函数创建新列表时崩溃。有什么建议吗?
我正在为即将到来的考试做一些修订,我对对象构造函数中枚举的使用有点困惑。
我有一个表ROOT和一个包含与ROOT相关行的表子级。 我想为根的每一行检索一个对象,该对象包含根对象以及与CHILDREN表中的ROOT.id相关的行数。 这可以很容易地在SQL中实现,但我想知道如何在JPQL中编写 在SQL中: 知道吗?