gpt4 book ai didi

grails - Groovy 方法重载

转载 作者:行者123 更新时间:2023-12-02 14:14:56 24 4
gpt4 key购买 nike

我有两个域类,我希望我的服务中的一个方法可以在这两个域类上运行。服务的方法将对两个对象做非常相似的事情,并且它所使用的那些对象中的属性在两个具有相同名称的对象中。所以,不要像这样制作两种方法:

calculateTotalBalancesInd(IndividualRecord indRec) {
//do something with indRec.accountsList
}
calculateTotalBalancesEnt(EntityRecord entRec) {
//do something with entRec.accountsList
}

有没有一种巧妙的方法(重载?)来制作一个可以对任一对象进行操作的方法?

谢谢

最佳答案

Groovy 有鸭子类型。只需像这样制作您的方法:

def calculateTotalBalancesEnt(rec) {
rec.accountsList
}

这里解释了鸭子打字:http://www.objectpartners.com/2013/08/19/optional-typing-in-groovy/

另一种方法,也许更安全一些:

创建上述方法,但将其设为私有(private)并从您定义的两个公共(public)方法中调用它。通过这种方式,api 保持更简洁、静态类型化,但实现会很常规。

关于grails - Groovy 方法重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24937475/

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