如何获取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
变量存在,但不显示。请看我的编辑,你说得对。编译后两者都是一样的,所以我认为这不会有什么不同。