Pagina 1 di 1

[java] problema con metodo

Inviato: giovedì 28 febbraio 2008, 16:53
da misterxxitalia
ciao a tutti ho scritto un metodo questo qui....

Codice: Seleziona tutto

void leggi_rubrica()
 {
  Document documento = null;
 SAXBuilder builder = new SAXBuilder();// Costruzione di un documeto SAX

try
 {
   documento = builder.build(new File("rubrica.xml"));// Lettura del file XML 
 }
 catch (JDOMException ex)
 {
   System.err.println(ex);
 }
 catch (IOException ex)
 {
   System.err.println(ex);
 } 
  }
il problema che quando lo vado a chiamare esempio qui...

Codice: Seleziona tutto

public class XMLRead {

public static void main(String[] args) //throws IOException, JDOMException 
{

Rubrica r = new Rubrica ();//creo una nuova rubrica
r.leggi_rubrica();
try
    {
     Element rubrica = documento.getRootElement();// Posizionamento sulla root (rubrica)
     List list = rubrica.getChildren("nominativo"); // ottieni una lista di tutti i figli di "rubrica" che si chiamano "nominativo"
     Iterator iterator = list.iterator(); // ottieni un iteratore alla lista
     while (iterator.hasNext())
documento non esiste.cosa sbaglio nel metodo?

Re: [java] problema con metodo

Inviato: giovedì 28 febbraio 2008, 18:04
da urbo83
Non lo trova perché "documento" è un campo dell'oggetto r di tipo Rubrica e tu lo stai chiamando all'esterno di esso. Eventualmente, ma non credo sia poi così corretto accedere ai campi degli oggetti dall'esterno, dovresti richiamarlo con "r.documento".

Re: [java] problema con metodo

Inviato: giovedì 28 febbraio 2008, 18:23
da misterxxitalia
scusa nn ti ho capito bene....puoi spiegarti meglio?

Re: [java] problema con metodo

Inviato: giovedì 28 febbraio 2008, 20:37
da misterxxitalia
up!

Re: [java] problema con metodo

Inviato: giovedì 28 febbraio 2008, 20:54
da urbo83
Un po' di pazienza!

Da quello che ho capito tu hai:
  • una classe Rubrica con dentro il metodo leggi_rubrica() e la variabile documento (come lo hai dichiarato?)
  • una classe con il main che crea l'oggetto di tipo Rubrica chiama il metodo leggi_rubrica() e cerca di accedere alla variabile documento.
Vedo che il metodo leggi_rubrica() lo chiami giustamente con la notazione r.leggi_rubrica(). Perché lo fai?
Se mi sai rispondere capisci anche dove sta il tuo errore.

Re: [java] problema con metodo

Inviato: giovedì 28 febbraio 2008, 21:26
da misterxxitalia
scusa forse il metodo non deve essere void??
ora ti spiego meglio quel metodo crea un documento (che all'inizio è vuoto)e ci carica tutto quello che è presente sul file xml
quindi scrivo
r.leggi_rubrica();
in seguito prendo il documento e carico in vettore tutto quello che ho con questo...

Codice: Seleziona tutto

ry

    {

     Element rubrica = documento.getRootElement();// Posizionamento sulla root (rubrica)

     List list = rubrica.getChildren("nominativo"); // ottieni una lista di tutti i figli di "rubrica" che si chiamano "nominativo"

     Iterator iterator = list.iterator(); // ottieni un iteratore alla lista

     while (iterator.hasNext())

{

    Element nominativo = (Element)iterator.next();



    r.addNominativo(new Rubrica (""+nominativo.getChild("nome").getTextTrim(),""+nominativo.getChild("cognome").getTextTrim(),""+nominativo.getChild("indirizzo").getTextTrim(),""+nominativo.getChild("telefono").getTextTrim(),""+nominativo.getChild("affinita").getTextTrim()));

}

    }

    catch (NullPointerException ex)

 {

   System.err.println(ex);

 }

catch (IllegalArgumentException ex)

 {

   System.err.println(ex);

 }

mi sono spiegato meglio?

Re: [java] problema con metodo

Inviato: giovedì 28 febbraio 2008, 21:29
da daemon_nio
Scusa ma con che IDE programmi?

Dal codice che hai postato la variabile documento non l'hai neanche dichiarata!

Re: [java] problema con metodo

Inviato: giovedì 28 febbraio 2008, 21:40
da misterxxitalia
dichiarata...

Codice: Seleziona tutto

 Document documento = null;
e usata..

Codice: Seleziona tutto

   documento = builder.build(new File("rubrica.xml"));// Lettura del file XML 
che sbaglio?

Re: [java] problema con metodo

Inviato: giovedì 28 febbraio 2008, 21:56
da urbo83
Se è dichiarata solo dentro al metodo da lì non esce ed è quindi inutilizzabile.

Re: [java] problema con metodo

Inviato: giovedì 28 febbraio 2008, 21:57
da misterxxitalia
scusa mi potresti dire come fare?

Re: [java] problema con metodo

Inviato: giovedì 28 febbraio 2008, 22:00
da daemon_nio
Aggiungere alla classe rubrica una cosa del genere

Codice: Seleziona tutto

public Documento getDocumento()
  {return this.documento;
   }
e nel main

Codice: Seleziona tutto

Documento documento = Rubrica.getDocumento();
è la soluzione migliore... poi potresti dichiarare la variabile pubblica e usarla con r.documento... ma è deprecato.

Consiglio studiala bene la programmazione ad oggetti... è importante.
Poi dopo ritorni alla pratica.

Ciao

Re: [java] problema con metodo

Inviato: giovedì 28 febbraio 2008, 22:02
da daemon_nio
Dimenticavo... all'inizio cerca di evitare gli ide... fai da kate, gedit, quello che vuoi anche il Blocco Note di windows :P ma non usare cose come Eclipse, Net Bean & family.

Quando hai imparato bene bene passi agli IDE e vedrai come sono belli.