如果我们有一个常规的对象,例如Customer [名称,电子邮件,电话]和格式为
的字符串String infoLine = "Stanislav,stanislav@stackoverflow.com,004612345678"
解析该字符串并填充该对象的字段的最简单方法是什么?
(我们可以拆分的示例字符串,这就是为什么问题来自字符串数组)
答案 0 :(得分:2)
假设您有一个构造函数
scoreDisplay.text = scoreDisplay.text ?? "" + ", \(testScore)"
scoreDisplay.text = scoreDisplay.text?.trimmingCharacters(in: CharacterSet(charactersIn: " ,"))
您可以这样做:
Customer(String name, String email, String phone)
如果不想编写构造函数,可以让Groovy为您创建一个构造函数:
new Customer(*infoLine.split(','))
或更妙的是,import groovy.transform.*
@TupleConstructor
class Customer {
String name
String email
String phone
}
String infoLine = "Stanislav,stanislav@stackoverflow.com,004612345678"
new Customer(*infoLine.split(','))
使得属性@Immutable
final
另一种选择(假设您的字段是按照它们在字符串中出现的顺序定义的,并且没有其他字段),将生成@Immutable
class Customer {
String name
String email
String phone
}
的映射,并告诉groovy将映射转换为客户喜欢:
[name: 'aaa', emai... etc
但这感觉有点脆弱,添加批注或构造函数可能更快。