在另一个问题中,我说
并从Java提供CanBuildFrom自变量在技术上是可能的,但您不希望这样做。
不幸的是,因为
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.SeqInteger或
TypeTags.Seq(TypeTags.Integer)。
在其他地方,Spark提供了可从Java使用的特殊API(查找
.java软件包),但我找不到
functions.typedLit。



