当前位置:  开发笔记 > 编程语言 > 正文

Groovy Mixins?

如何解决《GroovyMixins?》经验,为你挑选了2个好方法。



1> Dónal..:

从Groovy 1.6开始,您可以在编译时将mixin应用于使用注释的类

@Mixin(ImagesMixin)
class Person {
}

或者您可以在运行时应用mixin,如下所示:

def myMixin = ImagesMixin
Person.mixin myMixin

后一种方法更具动态性,因为mixin的类可以在运行时确定.有关Groovy mixins的更多信息,请点击此处.

根据我的经验,很多域类的元编程根本不起作用.我不知道为什么,但怀疑它是由于这些类已经由Grails运行时进行了大量的元编程.一般来说,我的方法是

在Groovy控制台中尝试POGO上的元编程

如果可行,请在Grails控制台中的非域类上尝试

如果可行,请在Grails控制台中的域类上尝试.如果它不起作用,那一定是因为它是一个域类(而不是语法问题).在这一点上,建议尝试找到另一种实现目标的方法.如果那是不可能的,那么使用Grails邮件列表和/或Stackoverflow和/或Grails源代码的组合来尝试使元编程工作.



2> Matthew Tayl..:

我认为你没有使用正确的mixin语法.试试这个:

class MyMixin {
    static doStuff(Person) {
        'stuff was done'
    }
}

class Person {}

Person.mixin MyMixin

new Person().doStuff()

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有