Это, вероятно, очень нубийский вопрос, но я немного играл с взаимодействием Scala/Java и задавался вопросом, насколько хорошо играли Tuples.
Теперь я знаю, что синтаксис (Type1, Type2)
- это просто синтаксический сахар для Tuple2<Type1, Type2>
, и поэтому при вызове метода Scala, который возвращает Tuple2 в простом Java-классе, я ожидал получить тип возврата of Tuple2<Type1, Type2>
Для ясности мой Scala код:
def testTuple:(Int,Int) = (0,1)
Код Java:
Tuple2<Object,Object> objectObjectTuple2 = Test.testTuple();
Кажется, компилятор ожидает, что это будет параметризованные типы <Object,Object>
, а не в моем случае <Integer,Integer>
(это то, чего я ожидал, по крайней мере).
Неужели мое мышление глубоко ошибочно и есть ли для этого разумное объяснение?
ИЛИ
Есть ли проблема в моем коде Scala, и есть способ быть более... явным, в тех случаях, когда я знаю, предоставит API для Java-кода?
ИЛИ
Это просто ограничение?