有沒有什麼方法可以迭代對象的屬性,並在迭代時獲取名稱和值。 我知道product iterator,但使用我只獲取屬性值而不是同時屬性的名稱。如何在scala中迭代對象的屬性?
0
A
回答
1
我認爲,沒有使用反射就沒有辦法做到這一點。 (例如見:Getting public fields (and their respective values) of an Instance in Scala/Java)
另一個選擇是使用Apache FieldUtils:https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/reflect/FieldUtils.html但它同樣在後臺使用反射。
2
只是不這樣做!
使用另一種設計:Scala不是PHP或Python或Perl;它是一種靜態類型的功能語言,具有非常富有表現力的類型系統;這種反射(運行時檢查)不需要99.9%的時間,應該避免出於安全性,正確性和性能的原因。
+0
相信這個問題涉及到0.1%-cases。 – conny
2
除非你正在爲程序員開發斯卡拉工具,這是很可能的是,你應該使用Map
,而不是一個對象。
如:
val myObject: Map[String, Any] =
Map("prop1" -> 1, "prop2" -> "string", "prop3" -> List(1, 2, 3))
for ((key, value) <- myObject) {
println(key, value)
}
如果你是建築工具,或者你不能只是換出對象的地圖,你可以使用反射在其他的答案中提到。
相關問題
- 1. 迭代對象的屬性
- 2. PLSQL迭代對象屬性
- 3. 迭代python中的對象屬性
- 4. ActionScript2的性能:迭代對象屬性
- 5. 如何在Angular 4中使用* ngFor迭代json對象屬性
- 6. 如何迭代對象的arrayList並在對象屬性中查找重複項?
- 7. 如何迭代「ng-options」屬性中的對象內的數組?
- 8. 如何迭代C#中的對象的所有屬性?
- 9. 迭代對象的屬性knockoutjs
- 10. 迭代對象屬性的Javascript方法
- 11. 使用的類屬性迭代對象
- 12. 迭代JavaScript對象屬性的順序?
- 13. 如何迭代對象原型鏈中的所有屬性?
- 14. 如何迭代JavaScript中對象原型的屬性?
- 15. 迭代器去除對象屬性
- 16. 通過對象屬性/鍵迭代
- 17. Javascript Array對象屬性迭代
- 18. C++/OF迭代每次迭代更改屬性的對象?
- 19. 如何在對象上分配迭代屬性/變量?
- 20. 如何在迭代對象類型時添加到ICollection屬性?
- 21. 如何通過對象屬性的迭代一個數組,在對象
- 22. 如何使用邏輯迭代對象列表:在jsp中迭代並顯示每個對象屬性值?
- 23. 對類屬性的迭代
- 24. 如何通過對象的嵌套屬性進行迭代
- 25. 如何迭代並打印Spring Environment對象的屬性
- 26. 如何處理通過其Next屬性迭代的對象?
- 27. 如何動態迭代兩個對象的屬性
- 28. 迭代對象的屬性(在Realm中,或者可能不是)
- 29. Thymeleaf - 迭代基於對象屬性的對象列表
- 30. 如何在Play框架的模板引擎中迭代Java對象的屬性
你最終想做什麼?這似乎是[XY問題]的實例(http://mywiki.wooledge.org/XyProblem) – Reactormonk