提问:Mybatis查询结果映射到实体类的时候,实体类为什么必须有一个空的构造函数?
答:Mybatis框架会调用这个默认构造方法来构造实例对象,即实体类需要通过Mybatis进行动态反射生成。
反射的Class.forName("className").newInstance();需要对应的类提供一个无参构造函数。
备注:
如果在类中没有提供任何构造方法,虚拟机会自动提供默认构造方法(无参构造器),但是如果提供了其他有参数的构造方法的话,虚拟机就不再为提供默认构造方法,所以默认的构造方法不是必须的,只在有多个构造方法时才是必须的显式声明的。