说这个之前,大家需要对java的反射机制有所了解:若对Java反射机制不够了解的,建议看下面这篇文章,讲的很通俗易懂:Java的反射机制,内含超简单实例代码(搞懂反射,这一篇就够了)
好了,接下来直接来讲解一下吧!
无参构造方法:
在运行时,用来构造该类的实体对象;
这句话看起来很简单,但是其实里面涉及到了反射,
解析一下:在运行的是时候,jvm中会有一个对应的Class对象,该class对象中包含了该运行类中的所有信息,接着通过该class对象调用newInstance()和无参构造方法来构造该类的对象,
同时如果你没有提供,jvm也会给你自动提供默认的无参构造方法来完成实例化;
那这个时候,问题来了,那为什么在hibernate中的实体类就需要提供一个无参构造方法呢?
答案就是,在Hibernate中的实体类实例化时,这个对象是由Hibernate框架创建的,其不会提供默认的无参构造器