【发布时间】:2015-09-10 17:00:10
【问题描述】:
我是 Scala 新手。我知道伴生对象只不过是具有相同类名的单例对象。如果一个单例对象就像使用静态方法一样,那意味着我应该能够访问它的方法而无需在类中创建实例。以下是我的代码sn-p:
class Main {
import Main._
def sayHelloWorld() {
println("Hello World");
}
Main.sayHi //error
}
object Main {
def sayHi() {
println("Hi!");
}
}
问题 1. 为什么我无法访问伴随对象的方法(尽管我已经指定了导入)?
问题2:如何使用对象名,不导入直接访问?
【问题讨论】:
-
test来自哪里? -
"问题 1. 为什么我无法访问伴随对象的方法(尽管我已经指定了导入)?"你可以。请发布您正在使用的实际代码。
test未声明,并且您的代码中没有调用 sayHiI() 。如果有(在 Main 类中)它会工作 -
谢谢!实际的问题是我没有将两者都绑定到一个对象上。 (REPL)
-
附加信息:因为伴生对象和类必须在同一个源文件中定义,所以您不能在解释器中创建它们。来源:daily-scala 解决方法:将两者与 REPL 中的某个对象绑定
-
您可以在 REPL 中创建它们,但您需要将其作为单个
:paste命令的一部分(键入:help以获取 REPL 命令列表)。
标签: scala