【发布时间】:2016-11-24 07:16:55
【问题描述】:
我有一个示例代码:
class A(str: String) {
println(s"InsideCase:::$str")
}
object A {
def apply(str: String) = {
println("foobar::")
new A(str)
}
}
object b extends App {
A("kool")
}
此代码在 Intellij 中运行良好。并给我输出:
foobar::
InsideCAse:::kool
但是当尝试在 REPL 上执行此操作时:
scala> :paste
// Entering paste mode (ctrl-D to finish)
class A(str: String) {
println(s"InsideCAse:::$str")
}
object A {
def apply(str: String) = {
println("foobar::")
new A(str)
}
}
// Exiting paste mode, now interpreting.
defined class A
defined object A
scala> A("kool")
它给了我以下错误:
<console>:27: error: reference to A is ambiguous;
it is imported twice in the same scope by
import $line31$read.A
and import INSTANCE.A
A("kool")
我在这里缺少什么?如果可以的话,请详细解释一下,这会很有帮助。
【问题讨论】:
-
对我来说很好用。
-
它适用于 Scala REPL 那么为什么它不适用于 SPARK REPL 呢?
标签: scala class apache-spark read-eval-print-loop companion-object