2
使用:Scala 2.10.3Scala標籤類型
嘗試編譯以下內容時出現錯誤。如果我刪除案例類,那麼它編譯。
Anythoughts上的雙從解決?
object DomainTypes {
type Tagged[T] = { type Tag = T }
trait DeviceIdTag
type DeviceId = Int with Tagged[DeviceIdTag]
implicit class TaggedInt(val data: Int) extends AnyVal {
def deviceId = {
require(data >= 1)
data.asInstanceOf[DeviceId]
}
}
}
case class DeviceIdHolder(odeviceId:DeviceId)
[錯誤]類型不匹配; [error] found:Double [error] required:AnyRef [error]注意:隱式存在於scala.Double => java.lang.Double中,但從Object繼承的 [error]方法呈現不明確。這是爲了避免 [錯誤]一個隱式的隱式將轉換任何scala.Double到任何AnyRef。 [錯誤]您可能希望使用類型歸屬:
x: java.lang.Double
。 [錯誤]一個錯誤發現 [錯誤](編譯:編譯)編譯失敗 [錯誤]總時間:0秒,完成了2014年3月2日上午11時47分01秒
如果更換INT的隨着字符串的編譯,所以我不認爲有任何結構錯誤的本質。
你使用的是什麼版本的scala? – rapvelopment
已更新至版本。這可能與此有關:http://stackoverflow.com/questions/20094679/case-class-companion-object-generation-error-for-compound-type – bearrito
該消息在2.11下可能更有幫助。 –