29 lines
753 B
Scala
29 lines
753 B
Scala
|
package spark
|
||
|
|
||
|
import java.io._
|
||
|
|
||
|
private object Utils {
|
||
|
def serialize[T](o: T): Array[Byte] = {
|
||
|
val bos = new ByteArrayOutputStream
|
||
|
val oos = new ObjectOutputStream(bos)
|
||
|
oos.writeObject(o)
|
||
|
oos.close
|
||
|
return bos.toByteArray
|
||
|
}
|
||
|
|
||
|
def deserialize[T](bytes: Array[Byte]): T = {
|
||
|
val bis = new ByteArrayInputStream(bytes)
|
||
|
val ois = new ObjectInputStream(bis)
|
||
|
return ois.readObject.asInstanceOf[T]
|
||
|
}
|
||
|
|
||
|
def deserialize[T](bytes: Array[Byte], loader: ClassLoader): T = {
|
||
|
val bis = new ByteArrayInputStream(bytes)
|
||
|
val ois = new ObjectInputStream(bis) {
|
||
|
override def resolveClass(desc: ObjectStreamClass) =
|
||
|
Class.forName(desc.getName, false, loader)
|
||
|
}
|
||
|
return ois.readObject.asInstanceOf[T]
|
||
|
}
|
||
|
}
|