我有一个非常简单的目标:编译一个 Scala 类,然后从另一个 Scala 脚本中加载它。问题是 Scala 似乎缓存(不确定在哪里)我创建的类,并且不尊重后续更改。
以下几行创建一个包含两个 .scala 文件的目录,编译一个并运行另一个:
mkdir test
cd test
echo 'class MyClass(s: String)' > MyClass.scala
echo 'val p = new MyClass("ok")' > test.scala
scalac MyClass.scala
scala test.scala # this works
cd ..
rm -rf test
如果我运行上面的行,我需要重新启动我的计算机才能使下面的行工作:
mkdir test
cd test
echo 'class MyClass()' > MyClass.scala
echo 'val p = new MyClass()' > test.scala
scalac MyClass.scala
scala test.scala # this doesn't
cd ..
rm -rf test
如果我不重新启动,我会收到一个错误,即我的构造函数中缺少一个字符串。不确定它在 Scala 的哪个地方缓存了以前的基于字符串的构造函数。