【发布时间】:2014-07-31 12:56:33
【问题描述】:
我对 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
}
}
}
【问题讨论】: