starałem się dostać do nowej biblioteki Scala wytrawiania który został zaprezentowany na ScalaDays 2013: Scala PicklingScala Trawienie Wykorzystanie MyObject -> Array [Byte] -> MyObject
Co ja naprawdę brakuje kilka prostych przykładów how używana jest biblioteka.
I rozumieć, że można marynowane jakiś przedmiot Znowu unpickle jest tak jak:
import scala.pickling._
val pckl = List(1, 2, 3, 4).pickle
val lst = pckl.unpickle[List[Int]]
W tym przykładzie pckl jest typu marynaty. Czym dokładnie jest użycie tego typu i jak mogę uzyskać na przykład Array [Byte] tego?
Tak, cmbaxter jest całkowicie poprawny. Typ piklowanej reprezentacji jest podtypem 'Pickle'. Wybranie "wartości" z piklowanej reprezentacji daje typ, jakiego można się spodziewać, 'Array [Byte]' dla binarnego, 'String' dla JSON, itd. –
Dzięki za odpowiedzi. Czasami jestem zdezorientowany, gdy Scala robi coś niejawnie. Wciąż jestem przyzwyczajony do jaśniejszej składni takiej jak Java, ale pracuję nad nią. ;) –
Czy to możliwe, że IntelliJ nie rozumie, jakiego typu użyć? Zaimportowałem scala.pickling._ i binary._, a kiedy zadzwonię .pickle na obiekcie, IntelliJ mówi mi, że jest typu Pickle, a nie BinaryPickle. Dlatego mówi mi, że .value jest typu Pickle.this.type # ValueType. Kompilator nie narzeka, ponieważ typem wyniku jest BinaryPickle. Moje obejście: na razie wołanie .pickle.asInstanceOf [BinaryPickle], aby nie wyświetlał się błąd w IDE. –