groovy中runtime mixins
的目的是什么?
Mixins总体来说,在没有多重继承问题的情况下向类添加功能的方法之一。但是它在Groovy中的目的是什么?特征可以做同样的事情。
注释@Mixin
被视为已弃用。运行时mixins有一天会有相同的命运吗?
答案 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
我会得到相同的结果。