我的一个班级有一个 TypeTag:
abstract class Tagged[+T](implicit ttg: TypeTag[T])
TypeTag(在本例中为私有变量)由于不可序列化而导致了一些问题。所以尝试将其声明为@transient:
abstract class Tagged[+T](@transient implicit val ttg: TypeTag[T])
但是这个看似微不足道的改动却引发了一个大问题,Scala编译器抛出如下错误:
Error:(16, 51) covariant type T occurs in invariant position in type => org.apache.spark.sql.catalyst.ScalaReflection.universe.TypeTag[T] of value ttg
abstract class Tagged[+T](@transient implicit val ttg: TypeTag[T] = null) extends Extractor[T] with Static {
^
我所做的只是将私有变量更改为公共变量。我应该怎么做才能消除这种错误?