Closed
Description
object Test {
def serializeDeserialize[T <: AnyRef](obj: T): T = {
import java.io._
val buffer = new ByteArrayOutputStream
val out = new ObjectOutputStream(buffer)
out.writeObject(obj)
val in = new ObjectInputStream(new ByteArrayInputStream(buffer.toByteArray))
in.readObject.asInstanceOf[T]
}
def main(args: Array[String]): Unit = {
val adder = serializeDeserialize((x: Int) => x + 1)
assert(adder(1) == 2)
}
}
> dotc -d out Test.scala
> dotr -classpath out Test
Exception in thread "main" java.io.NotSerializableException: Test$$$Lambda$1/1023892928
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
at Test$.serializeDeserialize(Test.scala:6)
at Test$.main(Test.scala:12)
at Test.main(Test.scala