我对Scala很新,所以请原谅我的基本问题。
我试图让Scala-Arm管理类成员的发布,但是在确定范围方面存在问题。
虽然以下代码编译,但它失败并带有
java.lang.NoSuchMethodError: resource.ManagedResource.reflect()Ljava/lang/Object;
关于反映电话。所以似乎managed_file
正在被立即释放。
对于局部变量,我使用了for (managed_file <- managed(...))
语法,但我不知道该怎么做。
建议任何人?
class Writer(outputPath: String){
val managed_file = managed(new FileOutputStream(new File(outputPath)))
def write(something : SomeClass) {
var bos = new ByteArrayOutputStream
var dos = new DataOutputStream(bos)
try {
dos.write(Marshal.dump(something))
bos.writeTo(managed_file.reflect)
}
finally {
dos.close
bos.close
}
}
}
答案 0 :(得分:0)
NoSuchMethodError是编译/运行时差异错误。您可以成功编译Scal ARM,但在运行期间找不到(或者至少在同一版本中找不到)。