gpt4 book ai didi

grails - 常规闭包继承

转载 作者:行者123 更新时间:2023-12-05 00:02:57 25 4
gpt4 key购买 nike

闭包的继承如何在 groovy 中工作?有什么特别需要注意的吗?我的应用程序是扩展插件 Controller ,如果有任何更新,我需要单独留下它。

最佳答案

闭包继承没有多大意义(无论如何我们倾向于使用它们)。实践中的闭包是 Closure 的一个实例类(class)。如果我们创建了 Closure 的子类然后我们可以对它们进行子类化,但我们没有。例如在 Controller 中,我们将 Action 定义为内联实例,例如

def list = {
...
}

这些被视为方法,因为我们可以调用 list() ,但这只是 list.call() 的语法糖, 自 call()Closure 的实例方法类(class)。

在 Grails 2.0 中,创建 Controller Action 的首选方法是使用方法,尽管为了向后兼容仍然支持闭包。此切换的主要原因之一是支持重载和覆盖,这对于内联闭包是不可能的(或至少不可行)。您可以在与基类实例同名的子类中定义闭包实例,但不能调用 super.list()因为它会导致 StackOverflowError

关于grails - 常规闭包继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7452202/

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