【问题标题】:Groovy extension method with traits?具有特征的 Groovy 扩展方法?
【发布时间】:2016-08-11 06:00:20
【问题描述】:

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

从我读到的here @Mixin 用于此目的,或者您可以将运行时 mixin 方法与元类一起使用。由于@Mixin 现在deprecated 支持特征,因此有没有机会通过使用特征来实现相同的行为,或者运行时混合是唯一的选择吗?

谢谢

【问题讨论】:

标签: groovy extension-methods mixins traits


【解决方案1】:

Groovy 还支持在运行时动态实现特征。它 允许您使用特征“装饰”现有对象。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-11
    • 2017-03-10
    • 1970-01-01
    • 2021-01-10
    • 2015-06-03
    • 2021-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多