我只是想知道在Scala中是否可以迭代封闭的特质(sealed trait)?如果不行,为什么不行呢?既然该特质已被封闭,那应该是可以的,对吗?
我的需求是这样的:
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中有相应的功能吗?