Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala-如何在反射中获取构造函数字段值?_Scala_Reflection - Fatal编程技术网

Scala-如何在反射中获取构造函数字段值?

Scala-如何在反射中获取构造函数字段值?,scala,reflection,Scala,Reflection,我对scala还很陌生,在反思方面有些挣扎 鉴于以下类别: class Person (name: String) { ..... } 以及给定的实例: val p = new Person ("MyName") 如何在反射中检索值“MyName” 顺便说一句-我尝试使用getClass.getDeclaredFields()使用java反射,但运气不好 谢谢 我认为在定义构造函数时应该添加修饰符var或val。 i、 e 类人员(变量名称:String){ ..... } 要检索值“My

我对scala还很陌生,在反思方面有些挣扎

鉴于以下类别:

class Person (name: String) {
 .....
}
以及给定的实例:

val p = new Person ("MyName")
如何在反射中检索值“MyName”

顺便说一句-我尝试使用getClass.getDeclaredFields()使用java反射,但运气不好


谢谢

我认为在定义构造函数时应该添加修饰符var或val。 i、 e

类人员(变量名称:String){ ..... }

要检索值“MyName”,您可以

val p=新人(“我的姓名”)


名称是:p.Name

我认为在定义构造函数时应该添加修饰符var或val。 i、 e

类人员(变量名称:String){ ..... }

要检索值“MyName”,您可以

val p=新人(“我的姓名”)


名称是:p.Name

Name
在您的示例中不是类的成员,它只是构造函数的函数参数。scala中的差异相当微妙,因为整个类都是在构造函数体中定义的,因此,它实际上是一个闭包,您可以在任何地方使用参数,但仍然存在差异

class-Person(val-name:String)
class-Person(var-name:String
)声明具有实例成员(最终或可写)
name
的类。
classperson(name:String)
没有实例变量,
name
只是构造函数的一个参数


Case类是特殊的,因为默认情况下它们将所有构造函数参数视为val,这是“语法糖”:
Case-class-Person(name:String)
真正的意思是“Case-class-Person(val-name:String)。

name
在您的示例中不是类的成员,它只是构造函数的函数参数。scala中的差异相当微妙,因为整个类都是在构造函数体中定义的,因此,它实际上是一个闭包,您可以在任何地方使用参数,但仍然存在差异

class-Person(val-name:String)
class-Person(var-name:String
)声明具有实例成员(最终或可写)
name
的类。
classperson(name:String)
没有实例变量,
name
只是构造函数的一个参数

Case类是特殊的,因为默认情况下它们将所有构造函数参数都视为val,这是“语法糖”:
Case-class-Person(name:String)
真正的意思是“Case-class-Person(val-name:String)”