Estoy intentando construir un marco de prueba automático (basado en jUnit, pero eso no es importante) para la tarea de mis alumnos. Tendrán que crear constructores para algunas clases y también agregarles algunos métodos. Más tarde, con las funciones de prueba que proporciono, verificarán si funcionó bien.Java: nuevoInstancia de clase que no tiene un constructor predeterminado
Lo que quiero hacer es, por reflexión, crear una nueva instancia de alguna clase que quiero probar. El problema es que, a veces, no hay un constructor predeterminado. No me importa eso, Quiero crear una instancia e inicializar las variables de instancia yo mismo. ¿Hay alguna forma de hacer esto? Disculpa si esto se ha preguntado antes, pero simplemente no he podido encontrar ninguna respuesta.
Gracias de antemano.
implicará una reflexión sucio para conseguir un constructor, y caminar, dándole un valor apropiado para cada argumento ... Gracias – bwawok
. El problema es que no sé si ya agregaron el constructor o no. Por supuesto, podría verificar si lo hicieron atrapando la excepción apropiada. Pero no sabría si crearon el constructor con los argumentos correctos. Peor aún, no sé si el constructor funciona bien. Me gustaría construir la instancia sin depender de su implementación. – GermanK
@GermanK: use Class.getConstructors() y vea qué hay disponible. * Tienes * que depender de una implementación para crear una instancia de una clase. Si crea una instancia sin llamar a uno de sus constructores con argumentos apropiados, no estará jugando limpio con sus clases, lo que * esperaría * que se creara una instancia adecuada. Sugiero que * mandato * una firma particular. –