Как сделать операнд Scala Seq ++ в Java - PullRequest
0 голосов
/ 29 октября 2018

Я работаю с классом Scala Seq в Java (scala.collection.Seq<A>) и, согласно документации Scala , есть операнд ++, который объединяет два Seq в один. Как я могу сделать то же самое в Java?

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

идентификатор Scala ++ переведен в $plus$plus в JVM. К сожалению, вы не можете позвонить seq1.$plus$plus(seq2), потому что настоящая подпись ++ -

def ++[B >: A, That](that: GenTraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That

и предоставление аргумента CanBuildFrom из Java ... технически возможно, но не то, что вы хотите сделать.

Поэтому я предлагаю преобразовать коллекции Scala в Java, используя методы JavaConverters, прежде чем работать с ними в Java всякий раз, когда CanBuildFrom вмешивается.

0 голосов
/ 29 октября 2018

Чтобы сделать то же самое в Java, вы можете использовать метод addAll. Допустим, у вас есть два списка listOne и listTwo.

List<T> resultList = new ArrayList<T>(listOne);
resultList.addAll(listTwo);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...