|
Scala example source code file (t3038d.scala)
The Scala t3038d.scala source code
trait Foo {
@transient protected var load = 1
@transient protected var a = 12
protected def init[B](in: java.io.ObjectInputStream) {
in.defaultReadObject
load = in.readInt
val sizea = in.readInt
a = 12
}
protected def serializeTo(out: java.io.ObjectOutputStream) {
out.defaultWriteObject
out.writeInt(load)
out.writeInt(a)
}
}
@serializable
class Bar extends Foo {
@transient protected var first: Any = null
def size = a
@transient var second: Any = null
def checkMember { first }
private def writeObject(out: java.io.ObjectOutputStream) {
serializeTo(out)
}
private def readObject(in: java.io.ObjectInputStream) {
first = null
init(in)
}
}
object Test {
private def toObject[A](bytes: Array[Byte]): A = {
val in = new java.io.ObjectInputStream(new java.io.ByteArrayInputStream(bytes))
in.readObject.asInstanceOf[A]
}
private def toBytes(o: AnyRef): Array[Byte] = {
val bos = new java.io.ByteArrayOutputStream
val out = new java.io.ObjectOutputStream(bos)
out.writeObject(o)
out.close
bos.toByteArray
}
def main(args: Array[String]) {
val a1 = new Bar()
val serialized:Array[Byte] = toBytes(a1)
val deserialized: Bar = toObject(serialized)
deserialized.size
deserialized.checkMember
}
}
Other Scala examples (source code examples)Here is a short list of links related to this Scala t3038d.scala source code file: |
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.