I\'m trying to fix a bug in one of my programs which I think might be due to Hibernate figuring out how to instantiate an instance of an object without calling its default (
Yes, deserializing an object does not invoke its constructor.
That said, I don't see why hibernate would serialize an object, unless perhaps in the second level cache.
Actually, yes, it is possible to bypass the constructor when you instantiate an object, if you use objenesis to instantiate the object for you. It does bytecode manipulations to achieve this.
Deserializing an object will also bypass the constructor.
It isn't possible to do this using reflection.
Deserialization involves creating objects without invoking a constructor.
It's possible (at least with the Sun/Oracle JDK) to do this programmatically. This was covered in "Creating Objects Without Calling Constructors", an edition of The Java Specialists' Newsletter. It involves using classes from the sun.*
packages so isn't portable.
Just to complete the picture: using method clone
to create a new object bypasses constructors as well.