Scala 在同一级别上定义枚举对象和值类
是否可以在Scala中声明同一级别上的枚举对象和类 我从这里开始,但我不确定注册实例的最佳方式是什么Scala 在同一级别上定义枚举对象和值类,scala,Scala,是否可以在Scala中声明同一级别上的枚举对象和类 我从这里开始,但我不确定注册实例的最佳方式是什么 object Gender extends Enumeration { val MALE = new Gender(0) val FEMALE = new Gender(1) } class Gender(val id: Int) extends Gender.Value { } 这样做的动机是,我不想将enum类称为Gender.Gender,而是Gender。这样做: obje
object Gender extends Enumeration {
val MALE = new Gender(0)
val FEMALE = new Gender(1)
}
class Gender(val id: Int) extends Gender.Value {
}
这样做的动机是,我不想将enum类称为Gender.Gender,而是Gender。这样做:
object Gender extends Enumeration {
val male = new Gender
val female = new Gender
class Sneaky extends Val(nextId, null)
}
class Gender extends Gender.Sneaky
> println(Gender.values)
Gender.ValueSet(male, female)
但是我真的感觉不太好。我想也会更好
要创建类型别名(如果可以在此范围内):
或在使用前导入类型:
object Gender extends Enumeration {
val male, female = Value
type Gender = Value
}
import Gender._
val x: Value = male
(或者,如果可以,可以使用用例类)。对象不是类的实例,因此不能对其应用
new
?是的,但new-Gender指的是类而不是对象,此代码将编译,枚举常量将可访问,但枚举将不知道它们感谢您的建议。在这种情况下,不能使用类型别名或导入。
object Gender extends Enumeration {
val male, female = Value
type Gender = Value
}
import Gender._
val x: Value = male