首页 > 解决方案 > 最终静态属性上的 Groovy MissingPropertyException

问题描述

我得到的例外是:

groovy.lang.MissingPropertyException: No such property: EISBN for class: de.hbznrw.ygor.export.structure.TitleStruct
Possible solutions: EISSN, ISSN, PISSN
  at groovy.lang.MetaClassImpl.invokeStaticMissingProperty(MetaClassImpl.java:1007) at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:1862) 
  at groovy.lang.ExpandoMetaClass.getProperty(ExpandoMetaClass.java:1155) 
  at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:1838) 
  at groovy.lang.ExpandoMetaClass.getProperty(ExpandoMetaClass.java:1155) 
  at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:3763) 
  at groovy.lang.ExpandoMetaClass.getProperty(ExpandoMetaClass.java:1167) 
  at org.codehaus.groovy.runtime.callsite.ClassMetaClassGetPropertySite.getProperty(ClassMetaClassGetPropertySite.java:51) ...

TitleStruct的代码是:

class TitleStruct {    
    static final ISSN  = 'issn'
    static final EISSN = 'eissn'
    static final PISSN = 'issn'
    static final EISBN = 'isbn'
    static final DOI = 'doi'

    // plus some getters
}

现在,这不是很奇怪吗?其中一个final static属性 ( EISBN) 被“解雇”,我找不到原因,而其他三个属性作为解决方案 (EISSNPISSN)ISSN提供。但是,代码中的属性处理绝对没有区别。(对于调查人员:项目在这里)。

显然,第五个属性DOI也没有作为解决方案提供。但这是由于比其他三个属性更大的拼写差异。我可以看到它存在于调试器中。(在调试器EISBN可见。)

更重要的是,相同的代码正在我同事的计算机上运行——而且它之前一直在我的机器上运行。异常突然发生。因此,我假设问题出在编译器区域。

所以,我的问题是:有没有人遇到过类似的问题?有什么建议么?非常感谢,伙计们!

标签: groovypropertiesstatic

解决方案


一旦它是 grails,就会对每个类进行动态增量编译。

并且存在这种行为的可能性。

尝试清理和重建整个项目。


推荐阅读