在groovy中运行时mixins的目的是什么

时间:2016-03-25 13:29:42

标签: groovy

groovy中runtime mixins的目的是什么?

Mixins总体来说,在没有多重继承问题的情况下向类添加功能的方法之一。但是它在Groovy中的目的是什么?特征可以做同样的事情。

注释@Mixin被视为已弃用。运行时mixins有一天会有相同的命运吗?

2 个答案:

答案 0 :(得分:0)

运行时mixins使我们能够在运行时向现有类添加方法。答案的重要部分是“存在”和“运行时”。

因此,您可以在运行时轻松地向任何第三方库添加新方法。

答案 1 :(得分:0)

实际上,最近我发现了一个使用mixins对我帮助很大的情况。

String.metaClass {
    invokeMethod {
        String name, args ->
            System.out.println "[$name] invokation with $args"
    }
}

class GroovyInterceptableWrapper 
    implements GroovyInterceptable {
}


String.mixin(GroovyInterceptableWrapper)

虽然我再次使用trait而不是类,然后调用withTraits我会得到相同的结果。