gpt4 book ai didi

java - 如何在Java中获取类的TypeTag

转载 作者:行者123 更新时间:2023-11-30 02:00:26 24 4
gpt4 key购买 nike

我正在尝试调用 functions.typedLit来自 Spark 库 my other question 。和it asks for two parameters ,一个文字对象及其类型(a TypeTag )。

第一个论点,我可以自己想出来(我认为)。但对于第二个,我不知道如何为其实例化一个对象。我正在尝试通过 TypeTag<Seq<Integer>>作为第二个参数。

有人可以告诉我如何创建 TypeTag对于 Seq<Integer>Java中?这是我试图完成的代码:

Seq<Integer> seq =  JavaConverters
.asScalaIteratorConverter((new ArrayList<Integer>()).iterator())
.asScala()
.toSeq();
Column litColumn = functions.<Seq<Integer>>typedLit(seq, ???)

最佳答案

在你的另一个问题中我说过

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

不幸的是,对于 TypeTag 来说,可能性更小:与 CanBuildFrom 不同,它们不是由库提供,而是内置于 Scala 编译器中。

我能给出的最好建议是创建一个 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.SeqIntegerTypeTags.Seq(TypeTags.Integer)

在其他地方,Spark 提供了供 Java 使用的特殊 API(查找 .java 包),但我找不到用于 functions.typedLit 的 API。

关于java - 如何在Java中获取类的TypeTag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53037901/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com