これはおそらく非常にわかりにくい質問ですが、私は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を提供することがわかっている場合は、もっと明示的にする方法がありますか?
また
これは単なる制限ですか?