的所有屬性我試圖列出使用Groovy的屬性(即具有getter方法的所有屬性)。我可以使用myObj.properties.each { k,v -> println v}
來做到這一點,並且工作正常。但是,這也可以打印整個超類層次結構。如果我只想列出當前類(而不是超類)的屬性,那可能嗎?Groovy列出類
5
A
回答
3
這是一種我被黑掉的方法,但也許你可以在它上面建立。
class Abc {
def a
def b
}
class Xyz extends Abc {
def c
def d
}
def xyz = new Xyz(c:1,d:2)
xyz.metaClass.methods.findAll{it.declaringClass.name == xyz.class.name}.each {
if(it.name.startsWith("get")) {
println xyz.metaClass.invokeMethod(xyz.class,xyz,it.name,null,false,true)
}
}
1
嘗試用以下:
myObj.declaredFields.collect{it.name}
+0
雖然這會得到不屬性的東西。它會得到所有的領域 - 我只用getter來尋找東西。 – 2014-01-27 20:08:21
相關問題
- 1. 列出在Groovy
- 2. Groovy的 - 列出薩姆
- 3. Groovy類的XML序列化
- 4. 如何在Groovy中列出JVM中的所有(常規)類
- 5. 爪哇與Groovy的內/外類出入
- 6. Groovy中的類拋出異常
- 7. 沒有類定義的Groovy序列化
- 8. Groovy shell.evaluate輸出
- 9. 在Groovy類
- 10. 編譯Groovy類
- 11. 創建groovy類
- 12. Groovy 2d陣列
- 13. Groovy:在拋出java.lang.ClassNotFoundException
- 14. Groovy - 未找到類
- 15. mockForConstraintsTests抽象Groovy類
- 16. Groovy類型轉換
- 17. Groovy列表轉換
- 18. Groovy中的繼承-Base class表中列出了子類的條目
- 19. Groovy的類別:在地圖轉換列表的列表
- 20. JSON輸出使用Groovy
- 21. Groovy:在WSClient拋出JAXBException
- 22. Groovy中的GString發出
- 23. Groovy SQL eachRow格式輸出
- 24. Groovy代碼是不突出
- 25. Groovy DataSource/BuildConfig找不到類
- 26. 編譯的Groovy類 - GC
- 27. Groovy geb.waiting類未找到
- 28. Groovy靜態泛型類型
- 29. 從xsd生成jaxb groovy類
- 30. Groovy類中gradle這個
感謝。這就是我的想法,但希望有一個「更加可行」的方式來做到這一點。 – 2010-10-26 21:39:17