我正在将一个大的 0.3.1 Griffon 应用程序升级到 0.9.4 我遇到了这些困难:
控制器:我已禁用 UI 线程注入以避免编译 BUG 问题(请参阅编译错误:BUG!Griffon 项目升级后的异常)这就是我避免该编译错误的方法,但随后出现了其他一些错误:
[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
这是真正的问题吗?有任何想法吗?
提前致谢。伊万。