我想要一个具有多个字段的类,例如字符串、布尔值等,并且在构造该类时,我希望有一个与每个字段相关联的字段名并验证该字段(对字符串使用正则表达式)。理想情况下,我只想在构造函数中指定参数需要满足某些条件。
一些示例代码:
case class Data(val name: String ..., val fileName: String ...) {
name.verify
// Access fieldName associated with the name parameter.
println(name.fieldName) // "Name"
println(fileName.fieldName) // "File Name"
}
val x = Data("testName", "testFile")
// Treat name as if it was just a string field in Data
x.name // Is of type string, does not expose fieldName, etc
有没有一种优雅的方式来实现这一目标?
编辑:我认为我无法清楚地了解我所追求的。我有一个带有许多字符串参数的类。这些参数中的每一个都需要以特定方式进行验证,并且我还希望有一个与每个参数关联的字符串 fieldName。但是,我仍然希望能够将参数视为普通字符串(参见示例)。
我可以将逻辑编码到 Data 中,并作为每个参数的 Data 伴随对象的应用方法,但我希望有更通用的东西。