MyBatis入门(自定义mybatis遇到的问题)

跟着视频敲的代码,遇到空指针的问题
MyBatis入门(自定义mybatis遇到的问题)
dubug程序:

MyBatis入门(自定义mybatis遇到的问题)
MyBatis入门(自定义mybatis遇到的问题)
在执行setMappers()方法传入值时并没有传入null,但是到setMappers内部赋值后,被赋值的变量编程了null很是奇怪。之后看了别人的代码发现将setMappers方法内this.mappers.putAll(mappers)方法改成了mappers = mappers即下图:
MyBatis入门(自定义mybatis遇到的问题)
改成这样确实可以正常运行,但是这样赋值的话每执行一次方法就会相应的值就会改变啊,一头雾水!