2016-03-31 13 views
0
// 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 
} 

Ich habe Klasse VH genannt, die in Haupt scalaUse-Case-Klasse in anderem Paket in scala

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

bis hier verwenden, es ist Arbeit, wie ich, aber unter Code wird nicht gesucht arbeiten oder zusammengestellt.

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 
} 

Wie kann ich die Fallklasse define in einer anderen Paketklasse verwenden? Irgendeine Idee davon? Vielen Dank.

Antwort

2

Ihre car ist eine geschachtelte Klasse, und es scheint nicht so zu sein. Verschieben Sie es einfach außerhalb VH. Wenn es tatsächlich verschachtelt werden muss, benötigen Sie eine VH Instanz, um damit zu arbeiten, z.

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

Vielen Dank! Ich habe es außerhalb von VH bewegt und alles gelöst. –