Scala Список объектов через запятую String - PullRequest
0 голосов
/ 31 октября 2018

Из java.util.List [CustomObject] Я хочу удалить значение и создать строку, разделенную запятыми, пробовал приведенный ниже код, но получил исключение

фрагмент 1

def getVal(a_attribList: List[CustomObject]): String = a_attribList
    .stream()
    .map(new java.util.function.Function[CustomObject, String] {
        override def apply(CustomObject): String = {
            t.getNolumn
        }
    })
    .collect(Collectors.joining(","))

фрагмент 2

def getVal(a_attribList: List[CustomObject]): String = {
    a_attribList
        .stream()
        .map(a => a.getNolumn)
        .collect(Collectors.joining(","));
}

Исключение

type mismatch;
 found   : java.util.function.Function[com.test.dataobjects.CustomObject,String]
 required: java.util.function.Function[_ >: com.test.dataobjects.CustomObject, _ <: R]
            .map(a => a.getNolumn)
                   ^
three errors found

Ответы [ 3 ]

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

Вы можете преобразовать его в Scala List и сделать отображение:

a_attribList.asScala.map(_.getNolumn).mkString(",")
0 голосов
/ 31 октября 2018

Как @ValentinCarnu уже указывал, фрагменты используют scala.collection.immutable.List вместо java.util.List.
Таким образом, вам нужно только сопоставить его с помощью стандартной анонимной функции scala, а затем преобразовать его в строку, используя метод mkString

def getVal(a_attribList: List[CustomObject]): String =
  a_attribList.map(a => a.getNolumn).mkString(",")

Теперь, если у вас действительно есть список Java, вы можете преобразовать его в список Scala , используя JavaConverters пакет .

import scala.collection.JavaConverters._
def getVal(a_attribList: java.util.List[CustomObject]): String =
  a_attribList.asScala.map(a => a.getNolumn).mkString(",")
0 голосов
/ 31 октября 2018

Отобразите все ваши строковые значения и затем вызовите

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