我尝试将以下特征混合到我的类中,以享受类似Boolean
类型的行为。如何使用闭集的值创建您自己的类型,在Scala
trait ReadyStates { // well, this is really used like an enumeration
class ReadyState
object Ready extends ReadyState
object NotReady extends ReadyState
}
但是,这不起作用,因为这个特征混入的每个类都创建它自己的对象。所以当在不同类的成员之间传递返回值时,Ready
不可能天真地与Ready
比较。
我怎样才能得到一个自定义类型,它有自己的一组允许值,与布尔值相同true
和false
,它们可以跨类进行无缝比较?
我看了一下枚举,他们当时看起来并不很亮。
谢谢!
似乎'ReadyStates'应该只是一个'object',其他类只是使用它的子类型?另外考虑让'ReadyState'密封和抽象。 – 2015-02-07 21:17:09
这意味着'ReadyStates.Ready'需要使用的地方。不太像“真”和“假”。但是,它的工作原理! – matanster 2015-02-07 21:23:25
如果你输入了blah.package.name.ReadyStates._' – 2015-02-07 21:24:33