[英]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.