当我尝试访问在Grails应用程序中继承的变量或方法时,Intellij经常抱怨cannot resolve symbol。这些应用程序可以编译并正常运行,因此实际上没有任何问题,但是IDE使它看起来像是存在问题。这使得很难弄清何时确实存在问题或我只是得到了误报。作为一个刚接触Grails并尝试学习的人,我发现自己将头撞在墙上,试图修复原来没有损坏的东西。

例如:

class GlobalParamsInterceptor {
    def SysConfigService sysConfigService;

    GlobalParamsInterceptor() {
        matchAll();
    }

    boolean before() {
        true
     }

    boolean after() {
        model.isApplicationOpen = sysConfigService.isApplicationOpen();
        model.context = grailsApplication.getMainContext();

        true
    }

    void afterView() {
        // no-op
    }
}
matchAll() model grailsApplication都标记为未解析的符号,但它们实际上是有效的。我正在使用应该支持Grails的Intellij Ultimate版,因此我认为它应该能够弄清楚这些事情对吗?

最佳答案



总的来说。在某些地方,IDEA无法识别混入某些 Artifact 中的特征,这是一个示例。该代码仍应编译并可以正常运行。我不知道是否特别有针对此功能的功能请求,但我会向IDEA的人提及。

09-04 23:32