最终静态属性上出现Groovy MissingPropertyException

时间:2019-03-20 16:19:54

标签: groovy properties static

我得到的例外是:

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中的一个被“关闭”,而提供了其他三个属性作为解决方案(EISSN,{{1} }和PISSN)。但是,代码中属性的处理绝对没有区别。 (对于调查对象:项目为here)。

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

更何况,相同的代码正在我同事的计算机上运行-并且以前已经在我的计算机上运行。异常突然发生。因此,我认为问题出在编译器区域。

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

1 个答案:

答案 0 :(得分:1)

每有一个类,就会有一个动态的增量编译。

,并且可能会出现这种情况。

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