[英]How a val value bean changed
我使用scala和mybatis:
Space.scala:
case class Space(
val id: Long ,
spaceName:String)
SpaceDao:
val space=Space(0,"space name")
val mapper = session.getMapper(classOf[SpaceMapper])
val result = mapper.insertSpace(space)
println(space.id)
结果空间id是mysql的自动递增数,而不是0.但是space和space.id都是val,为什么val值可以改变?
这可以通过反射 (由SetFieldInvoker使用 )来实现:
反射通常由程序使用,这些程序需要能够检查或修改在Java虚拟机中运行的应用程序的运行时行为。 这是一个相对高级的功能,只有那些掌握了语言基础知识的开发人员才能使用。 考虑到这一点,反射是一种强大的技术,可以使应用程序执行本来不可能的操作。
另见这个问题 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.