pickling icon indicating copy to clipboard operation
pickling copied to clipboard

Unpickle without specifying type

Open DonDebonair opened this issue 7 years ago • 1 comments

Is it possible to unpickle a pickled object without specifying the type?

Example:

import scala.pickling.Defaults._
import scala.pickling.binary._

object TestPickling extends App {

  case class Person(name: String, age: Int)

  val obj = Person("John", 65)
  
  val b = obj.pickle.value

  val objAgain = b.unpickle

}

The example doesn't work:

error: ambiguous implicit values:
 both value datePickler in trait DatePicklers of type => scala.pickling.Pickler[java.util.Date] with scala.pickling.Unpickler[java.util.Date]
 and value javaBigDecimalPickler in trait JavaBigDecimalPicklers of type => scala.pickling.Pickler[java.math.BigDecimal] with scala.pickling.Unpickler[java.math.BigDecimal]
 match expected type scala.pickling.Unpickler[T]
       b.unpickle

Am I missing something, or is this just not possible?

Usecase: serializing a set of objects of which the types are not known at compile time

DonDebonair avatar Mar 09 '17 10:03 DonDebonair

In your last line try: val objAgain = b.unpickle[AnyRef]

May also work with Any, but have not tried.

jcrowley66 avatar May 31 '17 13:05 jcrowley66