有没有什么方法可以迭代对象的属性,并在迭代时获取名称和值。 我知道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