我正在尝试使用
Scala的
Java库(JOhm)并注意到当lib尝试使用类似于model.getClass().getDeclaredFields()的东西读取我的Scala类的字段时,它会失败.
然后我决定尝试使用Scala解释器中的简单示例:
scala> import java.lang.reflect.Field; import java.lang.reflect.Field scala> class myClass(attribute1: String,attribute2: String,attribute3: String) defined class myClass scala> val myInstance = new myClass("value1","value2","value3") myInstance: myClass = myClass@7055c39a scala> myInstance.getClass().getDeclaredFields() res0: Array[java.lang.reflect.Field] = Array()
实际上,我们根本没有任何领域.
现在,如果我尝试这个怎么办:
scala> class myClass2(attribute1: String,attribute3: String) { override def toString = this.attribute1 } defined class myClass2 scala> val myInstance2 = new myClass2("value1","value3") myInstance2: myClass2 = value1 scala> myInstance2.getClass().getDeclaredFields() res1: Array[java.lang.reflect.Field] = Array(private final java.lang.String myClass2.attribute1)
因此,如果使用其中一个类’方法中的一个字段,则可以通过getDeclaredFields()找到它.我在这里错过了什么?