Scala 如何使用kryo和chill序列化TypeTag?

Scala 如何使用kryo和chill序列化TypeTag?,scala,serialization,kryo,Scala,Serialization,Kryo,我使用的是序列化。我想序列化存储类型参数信息的泛型类,以便将TypeTag[T]作为隐式参数传递: import com.twitter.chill.{Output, ScalaKryoInstantiator} import scala.reflect.runtime.universe.TypeTag object TagTest extends App { class A[T](implicit val t: TypeTag[T]) {} val kryo = (new Scala

我使用的是序列化。我想序列化存储类型参数信息的泛型类,以便将
TypeTag[T]
作为隐式参数传递:

import com.twitter.chill.{Output, ScalaKryoInstantiator}
import scala.reflect.runtime.universe.TypeTag

object TagTest extends App {
  class A[T](implicit val t: TypeTag[T]) {}
  val kryo = (new ScalaKryoInstantiator).setRegistrationRequired(false).newKryo()
  kryo.writeObject(new Output(new Array[Byte](100000)), new A[Int])
}
但由于某些原因,序列化失败,出现
java.util.ConcurrentModificationException

Exception in thread "main" com.esotericsoftware.kryo.KryoException: java.util.ConcurrentModificationException
Serialization trace:
classes (sun.misc.Launcher$AppClassLoader)
classLoader (scala.reflect.runtime.JavaMirrors$JavaMirror)
$outer (scala.reflect.runtime.JavaMirrors$JavaMirror$$anon$1)
currentOwner (scala.reflect.internal.Trees$TreeTypeSubstituter)
EmptyTreeTypeSubstituter (scala.reflect.runtime.JavaUniverse)
$outer (scala.reflect.api.TypeTags$PredefTypeTag)
t (TagTest$A)
    at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:101)
    at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:518)
    at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:552)
如果我尝试序列化
typeOf[Int]
对象,并且这表明
TypeTag
无法序列化,序列化将失败,并出现相同的错误


原因是什么?如何序列化
TypeTag
s?

根据chill在其Github页面上的列表,他们没有为
TypeTag
提供现成的序列化程序。您可能需要自己实现一个。