如何在scala中迭代对象的属性?

如何在scala中迭代对象的属性?,scala,Scala,是否有某种方法可以迭代对象的属性,并在迭代时获得名称和值。 我知道,但是使用它我只能同时获得属性值,而不是属性的名称。我认为,如果不使用反射,就没有办法做到这一点。(参见此处示例:) 另一个选项是使用ApacheFieldUtils:但它同样在后台使用反射。我认为,不使用反射是无法做到的。(参见此处示例:) 另一个选项是使用ApacheFieldUtils:但它同样在后台使用反射。不要这样做 使用另一种设计:Scala不是PHP、Python或Perl;它是一种静态类型的函数式语言,有一个非常有

是否有某种方法可以迭代对象的属性,并在迭代时获得名称和值。
我知道,但是使用它我只能同时获得属性值,而不是属性的名称。

我认为,如果不使用反射,就没有办法做到这一点。(参见此处示例:)


另一个选项是使用ApacheFieldUtils:但它同样在后台使用反射。

我认为,不使用反射是无法做到的。(参见此处示例:)

另一个选项是使用ApacheFieldUtils:但它同样在后台使用反射。

不要这样做

使用另一种设计:Scala不是PHP、Python或Perl;它是一种静态类型的函数式语言,有一个非常有表现力的类型系统;这种反射(运行时检查)在99.9%的时间里是不需要的,出于安全、正确性和性能的考虑,应该避免使用。

不要这样做


使用另一种设计:Scala不是PHP、Python或Perl;它是一种静态类型的函数式语言,有一个非常有表现力的类型系统;99.9%的时间不需要这种反射(运行时检查),出于安全、正确性和性能的考虑,应该避免这种反射。

除非您正在为开发scala的程序员构建工具,否则您很可能应该使用
映射而不是对象

例如:

val myObject:Map[字符串,任意]=
映射(“prop1”->1,“prop2”->string”,“prop3”->List(1,2,3))

对于((key,value),除非您正在为开发scala的程序员构建工具,否则很可能您应该使用
映射而不是对象

例如:

val myObject:Map[字符串,任意]=
映射(“prop1”->1,“prop2”->string”,“prop3”->List(1,2,3))

例如((键,值)你们到底想做什么?这似乎是你们到底想做什么的一个例子?这似乎是一个例子,我相信这个问题涉及到0.1%的案例。我相信这个问题涉及到0.1%的案例。
val myObject: Map[String, Any] =
  Map("prop1" -> 1, "prop2" -> "string", "prop3" -> List(1, 2, 3))

for ((key, value) <- myObject) {
  println(key, value)
}