Tengo un esquema xml (generado automáticamente mediante trang) que sigue cambiando. Estos cambios no son muy elaborados. Solo algunos elementos se agregan o eliminan de este esquema. A partir de este esquema, estoy generando clases Java (usando cxf) mediante las cuales deshago el documento xml.¿Cómo comprobar si una clase Java tiene un método particular en ella?
Como los cambios de esquema, mis clases Java generadas automáticamente también cambian. De nuevo, como con el esquema, los cambios en las clases de Java no son muy grandes. Por ejemplo, si un elemento dice elemA
se agrega al esquema; algunas funciones relacionadas dicen que getElemA()
y setElemA()
se agregan a la clase java autogenerada.
Ahora, ¿cómo habría que asegurarse de que existe una función particular en estas clases generadas automáticamente? Una solución es escribir a mano el esquema de modo que se cubran todos los elementos posibles de xml. Esto es lo que finalmente haré. Pero por ahora, no he corregido el formato del archivo xml.
UPDATE:
Hay una posibilidad de que un método getElemA()
puede definirse en las clases de auto-generado. No tengo control sobre la generación automática de estas clases. Pero en mi clase principal, si tiene el código siguiente,
If method getElemA exists then
ElemA elemA = getElemA()
Este código siempre estará allí en mi clase principal. Si se genera el método getElemA()
en una de las clases generadas automáticamente, entonces no hay problema. Pero si este método no se genera, los compiladores se quejan de que este método no existe en ninguna clase.
¿Hay alguna manera de que puedo hacer compilador que no se quejan de esta función en tiempo de compilación?
Gracias. Quiero usar el método y tengo que escribir todos los métodos posibles en esa clase, pero la clase autogenerada puede no tener ese método. ¿Cómo hacer que el compilador ignore esto en tiempo de compilación? – Dilawar
El uso de invocación no le dará errores de compilación ... revise las respuestas ans. – havexz
Muchas gracias. Después de encerrarlo en 'try-catch', funcionó como un amuleto. – Dilawar