How to get the TypeTag for a class in Java

前端 未结 1 1614
甜味超标
甜味超标 2020-12-11 18:20

I\'m trying to call the functions.typedLit from Spark library in my other question. And it asks for two parameters, a literal object and its type (a TypeT

相关标签:
1条回答
  • 2020-12-11 18:48

    In your other question I said

    and supplying the CanBuildFrom argument from Java is... technically possible, but not something you want to do.

    Unfortunately, for TypeTag it's even less possible: unlike CanBuildFrom, they aren't supplied by a library, but built into Scala compiler.

    The best advice I can give is to create a Scala file supplying the type tags you need to use from Java, since you only should need a limited number of them:

    object TypeTags {
      val SeqInteger = typeTag[Seq[Integer]]
      ...
      // or 
      val Integer = typeTag[Integer]
      def Seq[A](implicit tt: TypeTag[A]) = typeTag[Seq[A]]
    }
    

    and then from Java TypeTags.SeqInteger or TypeTags.Seq(TypeTags.Integer).

    In other places Spark provides special API for use from Java (look for .java packages), but I couldn't find one for functions.typedLit.

    0 讨论(0)
提交回复
热议问题