gpt4 book ai didi

unit-testing - 在grails中覆盖域属性的 setter 是否正确?

转载 作者:行者123 更新时间:2023-12-02 13:51:45 25 4
gpt4 key购买 nike

覆盖域类中属性的setter和getters是一个好主意吗?假设我们有一个带有名称属性和大写名称的域类,我们在其中存储清理名称:

class Person {
String name
String capitalizedName

String setName(String name){
this.name = name
this.searchName = name.replaceAll("[^A-Za-z0-9 ]", "").trim().toUpperCase()
}
}

如果我覆盖了setter并在单元测试中尝试使用动态查找器:
Person.findByName('Whatever')

我有
java.lang.IllegalArgumentException: Property [name] is not a valid property of class [com.test.Person]

但是在运行时它可以正常工作。

我可以修改域类的 getter 和 setter 吗?如上所述,实现行为的最佳方法是什么?

最佳答案

setter 的返回类型应为void

 void setName(String name){
this.name = name
this.searchName = name.trim().replaceAll("[^A-Za-z0-9 ]", "").replaceAll(" +", " ").toUpperCase()
}

关于unit-testing - 在grails中覆盖域属性的 setter 是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23392541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com