在 Scala 的其他包中使用案例 class

use case class in other package in scala

// vh.scala
class VH(temp: String) extends Serializable {
  case class car(name: String, color: String, year: Int) // case class I want to use in other package
}

我做了 class 命名为 VH,它将在主 scala 中使用

// main.scala
import packname.VH
val cars = nameRDD.map({ name=> car(name, "red", 2010) }).... // works well

到这里为止,它按我想要的方式工作,但下面的代码无法工作或编译。

cars.map({ car=> tf.go( car)}) // it's what I want to do

// other.scala - tf class
import packname.VH // not work
class TF ... {
 def go( car: car) // not work
 def go( car: VH.car) // not work
}

如何在其他包 class 中使用案例 class 定义?有什么想法吗?谢谢

您的 car 是一个嵌套的 class,它似乎没有必要。把它移到 VH 外面就行了。如果它确实需要嵌套,您将需要一个 VH 实例来使用它,例如

def go(vh: VH)(car: vh.car)