이 질문은 첫 번째와 관련이 : Iteration over a sealed trait in Scala?열거 형 -> "값"이있는 봉인 된 특성?
나는이 지금은 잘 작동 다음 밀봉 특성
/**
* @author Sebastien Lorber (<i>[email protected]</i>)
* Date: 02/12/12 - Time: 17:49
*/
sealed trait ResizedImageKey {
/**
* Get the dimensions to use on the resized image associated with this key
*/
def getDimension(originalDimension: Dimension): Dimension
}
object ResizedImageKey {
val ALL_KEYS: List[ResizedImageKey] = List(Large,Medium,Small,X2)
}
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)
}
case object X2 extends ResizedImageKey{
def getDimension(originalDimension: Dimension) = Dimension(
width = originalDimension.width * 2,
height = originalDimension.height * 2
)
}
에게 있습니다. 문제는 ResizeImageKey를 Salat과 함께 MongoDB에 저장 될지도의 키로 사용할 수 있어야한다는 것입니다.
저는 Salat이 "sealed trait conversionion"을 지원하지 않는다고 생각합니까? Enumeration으로 이동해야합니까? 그러면 치수 계산을 위해 일치/대/소문자를 구분해야합니까? 아니면이 문제에 대한 알려진 해결책이 있습니까? Enumeration 등을 확장하지 않고 열거 형 Value 객체를 만들 수 있습니까?
감사합니다.
형질이 봉인 되었기 때문에 "match is not exhaustive ..."라는 경고가 나타납니다. – yakshaver