Groovy:有没有办法获得预期的属性类名

时间:2017-03-28 07:12:06

标签: groovy

例如:我有一个方法

def someMethod(object){
    //retrieve all properties as key:value pair
    for(prop in object.getProperties()) {
        println(prop.getValue().getClass())
    }
}

如果财产已经有价值,那就很有效。但如果它没有返回

org.codehaus.groovy.runtime.NullObject

那么有没有办法获得属性的预期类名?

2 个答案:

答案 0 :(得分:3)

我明白了:

def someMethod(object) {
    for(prop in object.getClass().getDeclaredFields()) {
        if (!prop.getName().contains("\$") && prop.getName() != "metaClass")
            println(prop.getName() + " " + prop.getType())
    }
}

答案 1 :(得分:0)

它可能更干净:

object.getClass().declaredFields.findAll { !it.synthetic }.each {
    println "${it.name $it.type"
}