这可能是一个非常愚蠢的问题,但我在玩 Scala/Java 交互,想知道 Tuples 玩得怎么样。
现在,我知道(Type1, Type2)
语法只是 的语法糖Tuple2<Type1, Type2>
,因此,当调用一个在普通 Java 类中返回 Tuple2 的 Scala 方法时,我期望得到一个返回类型Tuple2<Type1, Type2>
为清楚起见,我的 Scala 代码:
def testTuple:(Int,Int) = (0,1)
Java代码:
Tuple2<Object,Object> objectObjectTuple2 = Test.testTuple();
似乎编译器希望这是参数化类型<Object,Object>
,而不是在我的情况下<Integer,Integer>
(至少这是我所期望的)。
我的想法是否存在严重缺陷,对此是否有完全合理的解释?
或者
我的 Scala 代码中是否存在问题,在我知道会为 Java 代码提供 API 的情况下,有一种更...明确的方法吗?
或者
这仅仅是一个限制吗?