0

0.3.1 の大きな Griffon アプリを 0.9.4 にアップグレードしていますが、次のような問題が発生しています。

  1. コントローラー: コンパイルのバグの問題を回避するために、UI スレッド化インジェクションを無効にしました (コンパイル エラー: BUG! グリフォン プロジェクトのアップグレード後の例外を参照)。

    [griffonc]
    [griffonc] C:\maestro\desarrollo\projects\interactionManager\sgmentia-client\griffon-app\controllers\com\nortia\sgmentia\client\select\SelectController.groovy: 53: Repetitive method name/signature for method 'void mvcGroupInit(java.util.Map)' in class 'com.nortia.sgmentia.client.select.SelectController'.
    
    [griffonc]  @ line 53, column 2.
    [griffonc]     void mvcGroupInit(Map args) {
    [griffonc]     ^
    [griffonc]
    
    [griffonc] C:\maestro\desarrollo\projects\interactionManager\sgmentia-client\griffon-app\controllers\com\nortia\sgmentia\client\select\SelectController.groovy: -1: Repetitive method name/signature for method 'void mvcGroupInit(java.util.Map)' in class 'com.nortia.sgmentia.client.select.SelectController'.
    [griffonc]  @ line -1, column -1.
    

子コントローラーでこのメソッドをオーバーライドすることは許可されていないようです。例えば:

    class MyCommonController{
    ...
    }

    class MyChildController extends MyCommonController{
    ...
        void mvcGroupInit(java.util.Map){}
    }

次のリファクタリングを行う他のコントローラーでこのエラーを解決しました。

    class MyCommonController{
    ...
        void mvcGroupInit(java.util.Map args){
        initMyCommon(map)
    }

    abstract void initMyCommon(map)
    }

    class MyChildController extends MyCommonController{
    ...
       void initMyCommon(map){
         //My real init code goes here
       }
    }

しかし、このコントローラはリファクタリングがより複雑です:

    class SelectController extends WindowAdapter implements DocumentController 

これは本当の問題ですか?何か案は?

前もって感謝します。イワン。

4

1 に答える 1

0

同じ設定をレプリケートしましたが、少なくともすべてのコントローラーが 内にある場合は、アプリケーションを適切に動作させることができますgriffon-app/controllers。ただし、ベース コントローラが別のディレクトリ (たとえばsrc/main) に配置されている場合、このエラーが発生します。

これは修正が必要な Griffon のバグです。http://jira.codehaus.org/browse/griffonに JIRA チケットを投稿していただけませんか?

于 2011-12-10T19:18:00.290 に答える