【发布时间】:2011-01-24 21:37:57
【问题描述】:
我正在尝试编写一个简单的辅助方法,该方法接收可以关闭的内容以及接收前者并确保“可关闭”在执行函数后关闭的函数。
例如,我想这样使用它:
closing(new FileOutputStream("/asda"))(_.write("asas"))
我的意思是
object Helpers {
def closing[T <: { def close }](closeable: T)(action: T => Unit): Unit =
try action apply closeable finally closeable close
}
但是当试图编译这个简单的测试时:
object Test {
import Helpers._
closing(new FileOutputStream("/asda"))(_.write("asas"))
}
编译器抱怨:
推断类型参数 [java.io.FileOutputStream] 不 符合方法关闭的类型 参数范围 [T <: anyref>
有什么想法吗?
【问题讨论】: