Tại sao nó chỉ khi tôi cần nó, Groovy của "metaClass" tài sản trả về null. Ví dụ:Khi Groovy của "metaClass" trả về null
import net.sf.json.groovy.JsonSlurper
@Grab(group='net.sf.json-lib', module='json-lib', version='2.3', classifier='jdk15')
def printMeta(obj) {
obj.metaClass.properties.each {println "Property: ${it.name}"}
}
def raw = /{"test":"this is a test"}/
def json = new JsonSlurper().parseText(raw);
printMeta (json);
Tôi biết rằng JsonSlurper sử dụng lập trình meta, vì vậy tại sao tôi nhận được như sau:
Caught: java.lang.NullPointerException: Cannot get property 'properties' on null object at MetaTest.printMeta(MetaTest.groovy:17) at MetaTest.run(MetaTest.groovy:24)
Tôi là tất cả ra khỏi ý tưởng.
Cảm ơn!
này xảy ra với tôi dù metaclass không được viện dẫn trên bản đồ. Tuy nhiên, câu trả lời của bạn đã giúp giải quyết vấn đề. Cám ơn – ken