我几乎总是会打开一个 Scala REPL 会话或者两个,这样可以很方便地对 Java 或 Scala 类进行快速测试。但是如果我改变了一个类并重新编译它,REPL 会话仍然加载旧的类,有没有一种方法可以让它重新加载类,而不必重新启动 REPL 呢?
举个具体的例子,假设我们有一个名为 Test.scala 的文件:
举个具体的例子,假设我们有一个名为 Test.scala 的文件:
object Test { def hello = "Hello World" }
我们编译它并启动REPL:
~/pkg/scala-2.8.0.Beta1-prerelease$ bin/scala
Welcome to Scala version 2.8.0.Beta1-prerelease
(Java HotSpot(TM) Server VM, Java 1.6.0_16).
Type in expressions to have them evaluated.
Type :help for more information.
scala> Test.hello
res0: java.lang.String = Hello World
然后我们更改源文件为
object Test {
def hello = "Hello World"
def goodbye = "Goodbye, Cruel World"
}
但是我们不能使用它:
scala> Test.goodbye
<console>:5: error: value goodbye is not a member of object Test
Test.goodbye
^
scala> import Test;
<console>:1: error: '.' expected but ';' found.
import Test;