groovy - 最终静态属性上的 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
) 被“解雇”,我找不到原因,而其他三个属性作为解决方案 (EISSN
和PISSN
)ISSN
提供。但是,代码中的属性处理绝对没有区别。(对于调查人员:项目在这里)。
显然,第五个属性DOI
也没有作为解决方案提供。但这是由于比其他三个属性更大的拼写差异。我可以看到它存在于调试器中。(在调试器EISBN
中不可见。)
更重要的是,相同的代码正在我同事的计算机上运行——而且它之前一直在我的机器上运行。异常突然发生。因此,我假设问题出在编译器区域。
所以,我的问题是:有没有人遇到过类似的问题?有什么建议么?非常感谢,伙计们!
解决方案
一旦它是 grails,就会对每个类进行动态增量编译。
并且存在这种行为的可能性。
尝试清理和重建整个项目。
推荐阅读
- ruby-on-rails - ActionText:具有表格支持和白名单属性的自定义附件(如样式)
- unity3d - 在 Ubuntu 中使用 Unity,但为 Windows 平台构建
- reactjs - 如何动态地将 React Web 组件添加到父组件?
- python-xarray - 将变量分配给数据集,沿维度的每个位置的值相同
- javascript - 您如何从使用背景图像获取的包含文件中更改 svg 元素的颜色: url("file-name.svg");
- react-native - 在 react native 中获取之前的网名
- node.js - 为什么我的 express.js 服务器失败了初始块流请求而不是下一个?
- swift - Swift - 呈现已呈现的弹出框时应用程序崩溃
- php - 展开 PHP Hack
- r - 如何创建具有 x 和 y 坐标和 2 种类型的密度热垫