3

我有一些带有类型标签的 Scala 代码,我需要为 Java 用户提供这些代码。我的问题归结为解决以下问题:

给定两个 Scala 类型标签,如何手动为 Tuple2[ A , B ] 创建类型标签?

如果它有任何区别,我的具体情况会更简单一些:我有一个 A 类型标签,我需要为 Tuple2[ String , A ] 创建一个类型标签

4

1 回答 1

4

类型标签通常用作隐式,因此隐式系统对它们非常熟悉。只需告诉 Scala 你想要什么类型并隐含地要求它。

def tupleTag[A : TypeTag, B: TypeTag]: TypeTag[Tuple2[A, B]] = implicitly

如果它可以被实例化,Scala 会这样做。如果不能,那就是编译器错误。在这种情况下,因为AB已经是具体的(因为它们有标签),所以也Tuple2[A, B]将始终是具体的。

于 2017-12-27T19:55:11.703 回答