2016-04-19 3 views
0

Хотелось бы узнать, есть ли способ добавить методы к библиотечным классам с использованием признаков Groovy.Метод расширения Groovy с чертами?

Из того, что я читал here @Mixin используется для этого, или вы можете использовать подход mixin runtime с метаклассом. Так как @Mixin теперь deprecated в пользу признаков, любой шанс достичь такого же поведения, используя черты, или является единственной версией runtime mixin?

Спасибо

+1

Документация Groovy объясняет доступные варианты: http://groovy-lang.org/metaprogramming.html –

ответ

0

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' 
Смежные вопросы