如何从另一个对象使用 Scala case class
How to use Scala case class from another Object
我有一个特点:
Trait paramsNeeded {
case class ThingOne (name: String, content: String)
val pairs : Map [String, ThingOne]
}
和 class A 扩展了这个特征:
class aClass (id: String) extends paramsNeeded{
val pairs : Map [String, ThingOne] = Map("aKey"->ThingOne("aName","aContent", id))
}
class B 使用类:
class bClass {
val withID = new aClass("100") //pass in id 100
val toBeUsedinC = withID.paris("aKey") //the intent is to return case class ThingOne, and use it in cObject
}
现在我希望使用的另一个对象cObject是toBeUsedinC
,并且有一个将它作为参数的函数。但它不识别类型大小写 class ThingOne:
object cObject {
def useParam (thingToUse:ThingOne) // it does not resolve symbol ThingOne
}
那么如何在 cObject 中使用 toBeUsedinC
并访问它的值呢?非常感谢。如果解释不清楚,请告诉我。我对它很陌生。
在清理了您之前的一些拼写错误后,编译并运行。
object CObject {
def useParam(thingToUse : AClass#ThingOne) = {}
}
val b = new BClass
CObject.useParam(b.toBeUsedinC)
我有一个特点:
Trait paramsNeeded {
case class ThingOne (name: String, content: String)
val pairs : Map [String, ThingOne]
}
和 class A 扩展了这个特征:
class aClass (id: String) extends paramsNeeded{
val pairs : Map [String, ThingOne] = Map("aKey"->ThingOne("aName","aContent", id))
}
class B 使用类:
class bClass {
val withID = new aClass("100") //pass in id 100
val toBeUsedinC = withID.paris("aKey") //the intent is to return case class ThingOne, and use it in cObject
}
现在我希望使用的另一个对象cObject是toBeUsedinC
,并且有一个将它作为参数的函数。但它不识别类型大小写 class ThingOne:
object cObject {
def useParam (thingToUse:ThingOne) // it does not resolve symbol ThingOne
}
那么如何在 cObject 中使用 toBeUsedinC
并访问它的值呢?非常感谢。如果解释不清楚,请告诉我。我对它很陌生。
在清理了您之前的一些拼写错误后,编译并运行。
object CObject {
def useParam(thingToUse : AClass#ThingOne) = {}
}
val b = new BClass
CObject.useParam(b.toBeUsedinC)