私は、JavaのBufferedInputStreamを特性として実装することを求めた本「ScalafortheImpatient」によって与えられた問題を解決しようとしています。これが私の実装です、
trait Buffering {
this:InputStream =>
private[this] val bis = {
new JavaBufferedInputStream(this)
}
override def read = bis.read
override def read(byte:Array[Byte], off:Int, len:Int) = bis.read(byte, off, len)
override def available = bis.available
override def close() {
bis.close
}
override def skip(n:Long) = bis.skip(n)
}
def main(args:Array[String]) {
val bfis = new FileInputStream(new File("foo.txt")) with Buffering
println(bfis.read)
bfis.close
}
しかし、これは私にJavaスタックオーバーフローエラーを与えるので、それの何が問題になっていますか?ありがとう!