Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取groovy对象或类的所有变量?_Groovy - Fatal编程技术网

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

如何获取groovy对象或类的所有变量?,groovy,Groovy,要查看类中的方法列表,我可以这样做- String.methods.each {println it} 如何列出实例的所有变量或类的所有静态变量 Edit1: Edit2: HoneyBadger.java public class HoneyBadger { public int badassFactor; protected int emoFactor; private int sleepTime; } test.groovy- HoneyBadger.met

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

String.methods.each {println it}
如何列出实例的所有变量或类的所有静态变量

Edit1:

Edit2:

HoneyBadger.java

public class HoneyBadger {
    public int badassFactor;
    protected int emoFactor;
    private int sleepTime;
}
test.groovy-

HoneyBadger.metaClass.properties.each {println it.name }
输出-

class
你可以做:

String.metaClass.properties.each { println it.name }
另一种选择(根据您的新示例)是:

import java.lang.reflect.Modifier

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

这给了我
[groovy.lang。MetaBeanProperty@f7901e,groovy.lang。MetaBeanProperty@116b487,groovy.lang。MetaBeanProperty@1a6492c]
不是像
value
hash
这样的字符串类变量。我复制粘贴到groovyConsole中。web控制台?你在看结果吗?还是输出?结果将是属性,
每个
返回调用它的集合。输出将是公共财产的名称。我正在查看结果。但输出仅列出三个变量-
字节
,和
。这些变量不在String类中。而
value
hash
变量存在,但不显示。请看我的编辑,你说得对。编译后两者都是一样的,所以我认为这不会有什么不同。