scala.collection.immutable. $ colon $ colon не может быть преобразован в java.lang.String - PullRequest
0 голосов
/ 31 октября 2019

Я перебираю карту со значением ключа как

Map(fields -> List(
  pangaea_customer_id, email_hash, savings_catcher_balance, 
  is_savings_catcher_member, billing_zipcode
))

Я пытаюсь из приведенного ниже кода получить значение поля ключ

val fields = ValuesMap.get("fields")

Но я не могупреобразовать поля в разделенные запятыми строки.

Пожалуйста, помогите мне, как это сделать.

Я пытаюсь с

        val fields = ValuesMap.get("fields").mkString(",")

, но он вернет

List(pangaea_customer_id, email_hash, savings_catcher_balance, 
     is_savings_catcher_member, billing_zipcode)

Ответы [ 2 ]

1 голос
/ 31 октября 2019

get возвращает Option[V] (потому что ключ может быть не отображен, а затем он должен вернуть None).

Option может быть повторен, как List,так что вы можете вызвать mkString для него, но он всегда возвращает не более одного элемента, поэтому символ разделителя не будет использоваться.

Попробуйте getOrElse("fields", Seq.empty).mkString(",")

То, что сделала ваша версия,:

  • get("fields") возвращает Some(List(....))
  • , если вы позвоните mkString на Option, просто выдаст вам пустую строку (если это было None) или (в вашем случае) результат toString для элемента внутри (который является List в целом).
0 голосов
/ 31 октября 2019

Вы можете попробовать это:

val fields = res8.get ("fields"). GetOrElse (List ()). MkString (",")

// output: поля: String = pangaea_customer_id, email_hash, Saving_catcher_balance, is_savings_catcher_member, billing_zipcode

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