scala - Scala - 模式匹配 - 构造函数无法实例化为预期类型
问题描述
我得到一个逗号分隔的度量值字符串,然后使用该字符串进行 SQL 查询。
但是,当我尝试进行模式匹配时,这里有一个错误:Some(newMetrics)
-option Constructor cannot be instantiated to expected type, found: Some[A], required: String
在这种情况下,使用模式匹配的正确方法是什么?
val metrics: String = props.getProperty(NEW_METRICS).filter(StringUtils.isNotBlank).getOrElse("")
val metricsQuery = metrics match {
case Some(newMetrics) => s"""SELECT $newMetrics FROM ${metricsTable}"""
case _ => OLD_TABLE
}
解决方案
您正在尝试匹配 aString
就好像它是Option[String]
通过省略.getOrElse("")
metrics
will be of type Option[String]
,您可以像在示例的下部那样匹配它。
推荐阅读
- python - 有没有办法将输入变成列表?
- vhdl - 错误 (10327) 无法确定运算符 ""="" 的定义
- amazon-web-services - 在 Visual Studio 2019 中为 LocalStack 使用 AWS Toolkit?
- javascript - 代码未显示输出到 HTML 中的按钮
- javascript - JS - 在不重定向的情况下更改“window.location”值和对象
- c++ - 错误无法转换 'std::string {aka std::basic_string
}' 到 'int' 赋值 - angular - 如何在 HttpParams 中使用具有可为空字段的对象?
- r - 有没有办法在 rmarkdown YAML 标头中直接将乳胶代码传递给 before_body?
- python - Seaborn : 如何在 seaborn barplot 中添加图例
- html - 在 HTML 表单中调用视图作为操作属性的值会导致 NoReverseMatch 错误