【发布时间】:2012-12-02 17:24:06
【问题描述】:
我只是想知道是否可以在 Scala 中迭代一个密封的特征? 如果不是,为什么不可能?既然特性被封印了应该是不可能的吧?
我想做的是这样的:
sealed trait ResizedImageKey {
/**
* Get the dimensions to use on the resized image associated with this key
*/
def getDimension(originalDimension: Dimension): Dimension
}
case class Dimension(width: Int, height: Int)
case object Large extends ResizedImageKey {
def getDimension(originalDimension: Dimension) = Dimension(1000,1000)
}
case object Medium extends ResizedImageKey{
def getDimension(originalDimension: Dimension) = Dimension(500,500)
}
case object Small extends ResizedImageKey{
def getDimension(originalDimension: Dimension) = Dimension(100,100)
}
我想要的可以在 Java 中通过实现枚举值来完成。 Scala 中是否有等价物?
【问题讨论】:
-
this不是你想要的吗?
-
谢谢!试图理解为什么我不能使用案例对象;)
标签: scala enumeration scala-macros sealed