2011-10-04 61 views
1

我想將子類中的某些操作映射到其超類,但我無法弄清楚。下面的示例...將grails操作映射到父控制器

abstract class A { 
    abstract def foo() 

    def aAction1 = { 
     // do something 
     render(view: '/someView') 
    } 
    def aAction2 = { 
     SomeObject someObject -> 
     // do something 
     render(view: '/someView2') 
    } 
} 

class B extents A { 
    def foo() { return "Hello World" } 

    # map to parent action  
    # works fine 
    def jump = super.&aAction1 
    # doesnt work ... Why? and can I make it work? 
    def swim = { SomeObject someObject -> 
     super.aAction2(someObject) 
    } 
} 

對此問題的任何建議?謝謝。

+0

它是如何工作的?除此之外,除非您在子類中重新定義aAction1/2,否則不需要指定super。你繼承了定義。 – codelark

+0

我得到了實例化異常。 – ekawas

+0

另外,如果我刪除游泳,並使其陷入aAction2,我會在sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(InstantiationExceptionConstructorAccessorImpl.java:30)異常'java.lang.InstantiationException \t' – ekawas

回答

0

所以事實證明,它沒有工作,因爲參數稍有不同。它似乎按預期工作。如果您遇到問題,請確保任何繼承類的參數與父級完全相同。

相關問題