代码之家  ›  专栏  ›  技术社区  ›  Mehran

如何在Java中获取类的TypeTag

  •  1
  • Mehran  · 技术社区  · 7 年前

    我在给警察打电话 functions.typedLit 从中的Spark库 my other question . 以及 it asks for two parameters ,一个文本对象及其类型(a TypeTag ).

    TypeTag<Seq<Integer>> 作为第二个参数。

    有人能告诉我如何创建 对于 Seq<Integer> 在里面 ? 下面是我要完成的代码:

    Seq<Integer> seq =  JavaConverters
                          .asScalaIteratorConverter((new ArrayList<Integer>()).iterator())
                          .asScala()
                          .toSeq();
    Column litColumn = functions.<Seq<Integer>>typedLit(seq, ???)
    
    1 回复  |  直到 7 年前
        1
  •  3
  •   Alexey Romanov    7 年前

    在你的另一个问题上我说

    从Java提供CanBuildFrom参数是。。。技术上可能,但不是你想做的事。

    不幸的是 TypeTag 更不可能:不像 CanBuildFrom

    我能给出的最好建议是创建一个Scala文件,提供您需要从Java使用的类型标记,因为您只需要有限数量的类型标记:

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

    然后从Java TypeTags.SeqInteger TypeTags.Seq(TypeTags.Integer) .

    .java 包),但我找不到一个 functions.typedLit

    推荐文章