如何获取groovy对象或类的所有变量?

Ksh*_*rma 3 groovy

要查看类中的方法列表,我可以这样做 -

String.methods.each {println it}
Run Code Online (Sandbox Code Playgroud)

如何列出实例的所有变量或类的所有静态变量?

EDIT1:

在此输入图像描述

在此输入图像描述

EDIT2:

HoneyBadger.java

public class HoneyBadger {
    public int badassFactor;
    protected int emoFactor;
    private int sleepTime;
}
Run Code Online (Sandbox Code Playgroud)

test.groovy -

HoneyBadger.metaClass.properties.each {println it.name }
Run Code Online (Sandbox Code Playgroud)

输出 -

class
Run Code Online (Sandbox Code Playgroud)

tim*_*tes 7

你可以这样做:

String.metaClass.properties.each { println it.name }
Run Code Online (Sandbox Code Playgroud)

另一种选择(给出你的新例子)将是:

import java.lang.reflect.Modifier

HoneyBadger.declaredFields
           .findAll { !it.synthetic }
           .each { println "${Modifier.toString( it.modifiers )} ${it.name} : ${it.type}" }
Run Code Online (Sandbox Code Playgroud)