2016-03-31 6 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 
} 

Я сделал класс с именем VH, который будет использовать в главном Скалеслучай использования класса в другой пакет в Скале

// 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 
} 

Как я могу использовать класс case в другом классе пакета? Любая идея этого? Благодарю.

ответ

2

Ваш car - это вложенный класс, и похоже, что это не должно быть. Просто переместите его за пределы VH. Если он действительно должен быть вложен, вам понадобится экземпляр VH для работы с ним, например.

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

Спасибо! Я переместил его за пределы VH и все решило. –