как преобразовать параметр в списке строк (используя метод split для их разделения) соответствует параметру класса case - PullRequest
0 голосов
/ 06 марта 2020

У меня есть класс дел и список строк, например, List ("123: abcd")

object BaseSDCConfig{
  case class Whitelist(accountId: String, ruleName: String) extends BaseSDCConfig
}

как преобразовать параметр в этой строке в этот класс дел? Что я должен положить в это, спасибо!

val mylist = BaseSDCConfig.Whitelist()

1 Ответ

2 голосов
/ 06 марта 2020

Вы можете использовать шаблон регулярного выражения для разделения и идентификации двух частей String и использовать collect(), чтобы отсеять плохо отформатированный ввод.

class BaseSDCConfig
object BaseSDCConfig{
  case class Whitelist(accountId: String, ruleName: String) extends BaseSDCConfig
}

val pattrn = "([^:]*):([^:]*)".r

List("123:abcd", "id7:rule9", "no colon here", "444:xyz", "too:many:colons")
  .collect{
    case pattrn(accnt, rule) => BaseSDCConfig.Whitelist(accnt, rule)
  }
//res0: List[BaseSDCConfig.Whitelist] = List(Whitelist(123,abcd)
//                                         , Whitelist(id7,rule9)
//                                         , Whitelist(444,xyz))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...