val值bean如何变化

时间:2015-09-22 02:11:57

标签: mysql scala mybatis

我在mybatis中使用scala:

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值可以改变?

1 个答案:

答案 0 :(得分:3)

这可以通过reflection(由SetFieldInvoker使用)来实现:

  

反射通常被需要能力的程序使用   检查或修改在其中运行的应用程序的运行时行为   Java虚拟机。这是一个相对高级的功能,应该   只有掌握了基本面的开发人员才能使用   的语言。考虑到这一点,反思是一种强大的力量   技术,可以使应用程序执行哪些操作   否则将是不可能的。

另见question