Я не могу запустить код ниже в искровой оболочке repl. Это репродукция из примера кулинарной книги Scala, предоставленного Элвином Александром. получить ошибку:
<console>:22: error: reference to Animal is ambiguous;
it is imported twice in the same scope by
import $VAL11.Animal
and import INSTANCE.Animal
val test = Animal("dog")
Это отлично работает с Scala repl. Не могли бы вы рассказать мне, как я могу заставить этот пример работать и на spark-shell?
Большое спасибо за твою помощь!
trait Animal {
def speak
}
object Animal {
private class Dog extends Animal {
override def speak = {
println("woof")
}
}
private class Cat extends Animal {
override def speak { println("meow") }
}
def apply(s: String):Animal = {
if (s == "dog") return new Dog
else return new Cat
}
}
# repl
Animal("dog")
# compiling
object test {
def main(args: Array[String]){
Animal(args(0)).speak
}
}
:paste
, чтобыAnimal
компаньоны были скомпилированы вместе. Это твой вопрос? - person som-snytt   schedule 26.04.2016Animal("pug") // show
, он может показать, что импортировано. - person som-snytt   schedule 26.04.2016