工作,我宣布一个类:阶反射不能在这种情况下
trait TO {
@BeanProperty var id: String = _
@BeanProperty var age : Int = _
@BeanProperty var createdAt : Long = _
@BeanProperty var disable: Boolean = _
}
class UMTTestObject extends TO {
@BeanProperty var inner: UMTInnerTO = _
}
class UMTInnerTO extends TO{}
并在反思,这不适合UMTInnerObject的setAge工作:
setter.invoke(inner, 0)
而二传手是UMTInnerObject的setAge,内是UMTInnerObject
的实例的错误味精所示:
的java。 lang.NoSuchMethodError:me.baihe.blackhole.luna.helpers.TO $ class.setAge(LME /白河/黑洞/卢纳/助理/ TO;我)V
这是非常puzzle--
任何人知道为什么?
看来你正在处理Java Reflection API。我鼓励你阅读Scala反射文档,特别是这个[部分](http://docs.scala-lang.org/overviews/reflection/overview.html#accessing_and_invoking_members_of_runtime_types),以便学习如何设置一个值改为使用Scala Reflection API。 – jeslg 2013-04-24 11:36:36
你能提供更多的细节吗?例如,你如何获得'setter'? – ghik 2013-04-24 12:57:36
@JesúsLópez-González,所以你认为scala不能使用java反射API,因为兼容性? – user1453345 2013-04-25 03:32:22