我试图修复一个程序错误,我认为这可能是由于Hibernate搞清楚如何实例化一个对象的实例而不调用它的默认构造函数(或任何其他构造函数)。是否有可能在不调用构造函数的情况下在Java中创建对象的实例?
17
A
回答
23
7
是的,反序列化对象不会调用其构造函数。这就是说,我不明白为什么hibernate会序列化一个对象,除非可能在二级缓存中。
6
反序列化涉及在不调用构造函数的情况下创建对象。
这可能(至少在Sun/Oracle JDK中)以编程方式执行此操作。这包括在"Creating Objects Without Calling Constructors"中,版本为The Java Specialists' Newsletter.它涉及使用sun.*
软件包中的类,因此不便携。
8
只是为了完成图片:使用方法clone
来创建一个新的对象绕过构造函数。
+0
只要克隆()正确实施,当然。可以重写克隆以充当不使用super.clone()的工厂方法。 (虽然应该使用super.clone(),而不是构造函数) – DerMike 2010-08-15 16:39:54
相关问题
- 1. 如何在不调用构造函数的情况下创建对象?
- 2. 如何在不调用构造函数的情况下创建对象?
- 3. 是否有可能在不调用任何构造函数的情况下实例化一个类?
- 4. 我们是否可以在不使用构造函数的情况下创建perl对象
- 5. 是否有可能在不调用析构函数的情况下删除C++中的对象?
- 6. 在不调用构造函数的情况下递归地实例化子类?
- 7. 是否有可能在构造函数中调用函数? PHP
- 8. 每次在java中调用构造函数时是否创建对象?
- 9. Java - 在不知道构造函数参数的情况下使用反射创建新实例
- 10. 类构造函数PolymerElement不能在没有'new'的情况下调用
- 11. 从它的构造函数中创建新的对象实例
- 12. 默认情况下,Java构造函数是不是公共的?
- 13. 构造函数如何在没有创建对象的情况下调用?为什么构造函数没有以相同的方式再次调用?
- 14. 在不创建实例的情况下调用类属性
- 15. 在不调用构造函数的情况下在类中调用方法
- 16. 构造函数在不复制对象的情况下获取对象
- 17. 是否有可能在不使用默认构造函数的情况下在类定义内创建类的对象
- 18. 从子类构造函数调用超级构造函数是否在内存中创建超类的对象?
- 19. 是否有可能在没有括号的情况下调用VB函数?
- 20. 带有创建该对象实例的方法的Java构造函数
- 21. 在不知道构造函数参数的情况下从java反射创建对象
- 22. 在构造函数中创建对象
- 23. 是否可以在构造函数中继承Java对象?
- 24. 无构造函数的类可以在没有实例化的情况下调用它们的方法吗?
- 25. 在不创建对象的情况下调用类的方法
- 26. 不能实例中的对象构造
- 27. 是否有可能在c#中创建一个将创建随机对象的构造函数列表?
- 28. 在堆(Java)上创建对象之后调用对象的构造函数吗?
- 29. 不能创建在类的构造函数的对象
- 30. 在不创建新对象的情况下调用公共函数JS
您应该发布原始问题而不是假设的解决方案。 – 2010-08-15 15:57:55
Hibernate使用实体的默认空构造函数。你走错了路。改为发布你的问题。 – 2010-08-15 16:09:25