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に同等のものはありますか?