Groovy 具有特征的扩展方法?

Groovy extension method with traits?

我想知道是否有任何方法可以使用 Groovy 特征将方法添加到库 类。

从我读到的 here @Mixin is used for this, or you can use the runtime mixin approach with metaclass. Since @Mixin is now deprecated 支持 traits 的内容来看,是否有机会通过使用 traits 实现相同的行为,或者运行时混合是否是唯一的选择?

谢谢

Groovy also supports implementing traits dynamically at runtime. It allows you to "decorate" an existing object using a trait.

你可以装饰一个对象,但是,恐怕不可能装饰一个class使其所有实例都有可用的方法。请参阅下面的一个简单示例,它可能会对您有所帮助或找到更多详细信息 here

trait Extra {
    String extra() { "I'm an extra method" }            
}

class Something {                                       
    String doSomething() { 'Something' }                
}

def s = new Something() as Extra                        

assert s.extra() == "I'm an extra method"                                               
assert s.doSomething() == 'Something'