Scala: создать кортеж из Java? - PullRequest
6 голосов
/ 23 ноября 2011

Должно быть, я что-то упустил очевидное, но как же Вы создаете кортеж Scala в Java.

У меня есть интерфейс Scala, который реализован в Java (на данный момент) и включает в себя возврат кортежа, но как мне его реализовать?

Ответы [ 2 ]

11 голосов
/ 23 ноября 2011

Кортеж является только синтаксическим сахаром для класса Tuple2:

new Tuple2<String, String>("foo", "bar");

добьется цели в Java.

scala> ("foo", "bar")
res0: (java.lang.String, java.lang.String) = (foo,bar)

scala> new Tuple2[String, String]("foo", "bar")
res1: (String, String) = (foo,bar)

scala> ("foo", "bar").getClass.getName
res3: java.lang.String = scala.Tuple2

Существуют аналогичные классы Tuple3 ... Tuple22.

7 голосов
/ 23 ноября 2011

Используйте класс scala.Tuple1, scala.Tuple2, ..., scala.Tuple22.

http://codemonkeyism.com/tuples-scala-goodness/ хорошо объясняет:

Что такое кортежи? Кортежи являются контейнерами для значений. В Scala вы создаете кортеж с:

scala> val t = (1,2)
t: (Int, Int) = (1,2)

который является синтаксическим сахаром для

scala> val t = new Tuple2(1,2)
t: (Int, Int) = (1,2)

as Tuples - это простые классы в библиотеке Scala. Кортежи имеют тип Tuple1, Tuple2, Tuple3 и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...