Estoy tratando de corregir un error en uno de mis programas, lo que creo que podría deberse a que Hibernate averiguó cómo crear una instancia de un objeto sin llamar a su constructor predeterminado (o cualquier otro).¿Es posible crear una instancia de un objeto en Java sin llamar al constructor?
Respuesta
En realidad, sí, es posible omitir el constructor al crear una instancia de un objeto, si usa objenesis para crear una instancia del objeto para usted. Realiza manipulaciones de código de bytes para lograr esto.
Deserializar un objeto también omitirá el constructor.
No es posible hacerlo utilizando la reflexión.
Sí, la deserialización de un objeto no invoca su constructor.
Dicho esto, no veo por qué hibernate serializaría un objeto, a menos que tal vez en el segundo nivel de caché.
La deserialización implica crear objetos sin invocar un constructor.
Es posible (al menos con Sun/Oracle JDK) hacer esto programáticamente. Esto se cubrió en "Creating Objects Without Calling Constructors", una edición de The Java Specialists' Newsletter. Implica el uso de clases de los paquetes sun.*
, por lo que no es portátil.
Solo para completar la imagen: utilizando el método clone
para crear un nuevo objeto, también pasa por alto a los constructores.
siempre que clone() se implemente correctamente, por supuesto. Es posible anular el clon para que actúe como un método de fábrica que no utiliza super.clone(). (Si bien debe usarse super.clone(), no el constructor) – DerMike
- 1. ¿Crear instancia de objeto sin invocar al constructor?
- 2. En PHP, ¿es posible crear una instancia de una clase sin llamar al constructor de la clase?
- 3. ¿Es posible en java crear una instancia 'en blanco' de clase sin constructor sin arg usando reflexión?
- 4. ¿Es posible crear un objeto sin declarar una clase?
- 5. ¿Por qué es posible llamar a la función miembro no estática sin una instancia de objeto?
- 6. ¿Es una buena o mala práctica llamar a métodos de instancia desde un constructor java?
- 7. weka.core.UnassignedDatasetException al crear una instancia sin etiqueta
- 8. Crear un objeto sin llamar a una clase
- 9. ¿Es posible crear un objeto CLHeading en Objective C?
- 10. llamar al constructor de otro constructor en una misma clase
- 11. .NET Reflection: ¿Cómo llamar al método de interfaz sin crear una instancia?
- 12. ¿Cómo crear una instancia de un objeto con un constructor privado en C#?
- 13. llamar al constructor de un tipo genérico
- 14. ¿Es una violación de Clean Code llamar al método init en un constructor como este?
- 15. ¿Es posible crear constructor-extension-method? ¿cómo?
- 16. llamar al constructor de otro constructor
- 17. ¿Cuál es la ventaja de llamar a alguien nuevo en una instancia de objeto?
- 18. ¿Cómo instancia la deserialización de WCF objetos sin llamar a un constructor?
- 19. C# Reflection: ¿Es posible encontrar una instancia de un objeto en tiempo de ejecución?
- 20. ¿es posible llamar al servlet java desde ring/compojure?
- 21. cómo llamar al constructor padre?
- 22. ¿Es posible serializar objetos sin un constructor sin parámetros en WCF?
- 23. ¿Es posible crear una instancia de una anotación de Java dada una clase <? extiende la anotación>?
- 24. ¿Llamar al constructor personalizado con Dapper?
- 25. Java cómo crear una instancia de una clase de cadena
- 26. Uso heredado en el constructor "Crear" de un objeto TObject
- 27. Cómo crear una instancia de un argumento de tipo genérico utilizando un constructor parametrizado en C#
- 28. Definición de un objeto sin llamar a su constructor en C++
- 29. Instancia es un "objeto", pero la clase no es una subclase de "objeto": ¿cómo es esto posible?
- 30. Crear una instancia de un objeto de clase con un constructor que acepte un parámetro de cadena?
Posiblemente deberías publicar el problema original en lugar de una solución supuesta. –
Hibernate usa el constructor vacío predeterminado de las entidades. Estás en el camino equivocado. Publique su problema en su lugar. –