2
class A {
def test() { println "parent" }
}
@Mixin(A)
class B {
def test() { println "child" }
}
new B().test() // prints "parent", but I am expecting it to print "child"
這看起來像某種反向繼承。Groovy :: @Mixin方法覆蓋目標類方法
mixin僅用作定義新方法的手段嗎?
我當然可以使用常規繼承並使用擴展,但用例需要一個表單構建器,其中每個域都有一個唯一的表單實現,並且我希望在我的應用程序控制器中捕獲表單請求並執行MyUniqueDomainForm.mixin DefaultFormMethods(所以我只需要在需要的時候定義默認方法,以及不必在每個表單類中導入my.package.app.DefaultFormMethods)
謝謝蒂姆,我認爲是這樣。 Groovy「宣傳」mixin作爲繼承的替代品,但隱含的父親覆蓋 - 兒童方法沒有被提及(從我所見過的)。那麼,一個標準的孩子延伸到父母,以獲得我所期望的行爲(即沒有其他@annotion將其拉下?) – virtualeyes
沒有probs。不是我所知道的...除了添加類型爲「A」的屬性並將其標記爲「@ Delegate」: - / –