Expongo una duda que sospecho debe ser básica pero sucede que no tengo grandes conocimientos de programación.
tengo una clase CSigna la cual tiene otra clase estática anidada CPlan (y otras clases anidadas aparte).
Dentro de mi clase CPlan tengo mis método set y get y un método para crear un archivo XML llamado creaXML.
Aparte hice un formulario que es controlado por la clase NuevoPlanController. En esta clase cree un método crearPlan en el cual pretendo setear los valores de la clase CPlan, para lo cual, cree un objeto de CPlan dentro de mi método guardarPlan y obviamente a través de este objeto setie los atributos.
Hice algunas pruebas y efectivamente los valores pasan de manera natural pero ahora... tengo un menú que controlo con la clase MenuController y en dicho menú tengo la opción de guardar, la cual está ligada al método guardarPlan. En este método creo nuevamente otro objeto de la clase CPlan (subclase anidada de CSigna) y desde allí llamo al método crearXML que está en la clase CPlan.
El XML se genera pero los valores que seteo en la otra clase, llegan nulos. Puse los atributos de CPlan como estáticos porque se supone que todos los objetos comparten una copia de los atributos pero aún así llegan nulos los datos. Estoy seguro que me estoy equivocando en algo básico pero no logro darle ¿Alguna pista? o bien (y por esto el título del tema) puedo hacer algo así como obtener una referencia al objeto creado en el método crearPlan de la clase NuevoPlanController y así, a los valores que setie en ese mismo objeto desde el método guardarPlan de la clase MenuController ?
Como ven estoy bastante revuelto y agradecería cualquier ayuda. Gracias de antemano.
pongo las clases (de manera representativa) a como las tengo
clase CSigna y subclase CPlan
Código:
public class CSigna { public static class CPlan { private static String nombre; private static String Tipo; private static String Folio; public void setNombre(String nombre) { this.nombre = nombre } public String getNombre () { return nombre; } public void crearXML(parametros...) { //Cuerpo del método crearXML } } }
Código:
Esta clase controla el menupublic class NuevoPlanController { //atributos blah blah blah TextField campoFolio; TextField campoNombrePlan; TextField campoTipoPlan; public void crearPlan (ActionEvent event) { //Creo el objeto CSigna.CPlan CSigna.CPlan plan = new CSigna.CPlan(); try { //Aquí pretendo setear los atributos de la clase CPlan plan.setFolio(campoFolio.getText()); plan.setTipo(tipoPlanChoiceBox.getValue().toString()); plan.setNombre(campoNombrePlan.getText()); } catch(Exception e) { e.printStackTrace(); } } }
Código:
public class MenuController { //atributos public void guardarPlan () { CSigna.CPlan plan = new CSigna.CPlan(); plan.CreaXML(parametros...); } }