【发布时间】:2018-06-08 17:40:36
【问题描述】:
我是 Scala 的新手,我有一个允许的电话号码列表,我应该从 yaml 文件中获取。我在我的配置文件下有这样的:
allowedPhoneNumbers:
- 101111111001
- 101111111002
- 101111111003
我有一个配置特征,我可以像这样从 yaml 文件中获取允许的电话号码列表:
val allowedPN1= config.getStringList("allowedPhoneNumbers").toArray
或
def allowedPN2: util.List[String] = config.getStringList("allowedPhoneNumbers")
我有一个应该返回 Set[PhoneNumbers] 的函数。 如果我想返回一些
config.allowedPN1.toSet[PhoneNumbers]
它编译得很好,但是当我构建项目时,我得到一个
type arguments [PhoneNumbers] do not conform to method toSet's type parameter bounds [B >: Object]
那么,我如何将我的列表(从配置文件中获取)转换为一些 Set[PhoneNumbers]。其中 PhoneNumbers 只是一个具有所需模式匹配的类。
case class PhoneNumbers(value: String) {
require(Pattern.matches("\\d{12}", value),
"The number must be a 12 digit phone number.")
override def toString: String = value
}
【问题讨论】:
-
你的
PhoneNumber上课是什么?? -
具有所需模式的类。我已经把它放在我最初的问题中。