Groovy:无法从java设置属性

时间:2015-03-07 13:10:11

标签: java grails groovy

我正在开发Grails应用程序。我有一个具有一些属性的Groovy bean。我试图使用setter方法实例化并设置Java类中的一些属性。虽然我没有任何错误,但这些属性并不包含任何价值。我试图在调试模式下查看对象内容:groovy对象包含1个唯一字段(r $ fields),其中包含一个空的HashMap。

Groovy Bean

import java.time.LocalDateTime;

import groovy.transform.ToString;

@ToString(includeNames = true, ignoreNulls = true)
class Article {

    String id
    String modelId
    String ean
    String deepUrl

    LocalDateTime lastUpdate
}

Java代码

a = new Article();
a.setId("123");
a.setModelId("456");
a.setEan("789");
a.setLastUpdate(LocalDateTime.now(Clock.systemUTC()));

执行上面的代码后,对象结果为空。enter image description here

在Java代码中添加a.toString()作为最后一个语句我得到以下NPE

  

Stacktrace如下:java.lang.NullPointerException at   org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:39)     在   org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)     在   org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)     在   org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)

1 个答案:

答案 0 :(得分:1)

我找到了解决这个问题的方法,但我并不能理解其中的原因。问题与变量deepUrl有关。删除后,代码将作为魅力。我在groovy Web控制台上测试了它,它可以工作* https://groovyconsole.appspot.com/script/5656619568332800)。这可能与Grails有关吗?