如何从另一个对象使用 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)