[java] problema con metodo

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
misterxxitalia
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 838
Iscrizione: domenica 11 marzo 2007, 22:15

[java] problema con metodo

Messaggio 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?
Avatar utente
urbo83
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 363
Iscrizione: giovedì 21 aprile 2005, 14:59
Desktop: GNOME 3.10
Distribuzione: ArchLinux x86_64
Località: Cesena (FC)
Contatti:

Re: [java] problema con metodo

Messaggio 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".
misterxxitalia
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 838
Iscrizione: domenica 11 marzo 2007, 22:15

Re: [java] problema con metodo

Messaggio da misterxxitalia »

scusa nn ti ho capito bene....puoi spiegarti meglio?
misterxxitalia
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 838
Iscrizione: domenica 11 marzo 2007, 22:15

Re: [java] problema con metodo

Messaggio da misterxxitalia »

up!
Avatar utente
urbo83
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 363
Iscrizione: giovedì 21 aprile 2005, 14:59
Desktop: GNOME 3.10
Distribuzione: ArchLinux x86_64
Località: Cesena (FC)
Contatti:

Re: [java] problema con metodo

Messaggio 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.
misterxxitalia
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 838
Iscrizione: domenica 11 marzo 2007, 22:15

Re: [java] problema con metodo

Messaggio 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?
Avatar utente
daemon_nio
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1012
Iscrizione: lunedì 15 gennaio 2007, 14:18
Sesso: Maschile
Località: London
Contatti:

Re: [java] problema con metodo

Messaggio da daemon_nio »

Scusa ma con che IDE programmi?

Dal codice che hai postato la variabile documento non l'hai neanche dichiarata!
Sempre costruendo qualcosa di nuovo: Matag: The Game
misterxxitalia
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 838
Iscrizione: domenica 11 marzo 2007, 22:15

Re: [java] problema con metodo

Messaggio 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?
Avatar utente
urbo83
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 363
Iscrizione: giovedì 21 aprile 2005, 14:59
Desktop: GNOME 3.10
Distribuzione: ArchLinux x86_64
Località: Cesena (FC)
Contatti:

Re: [java] problema con metodo

Messaggio da urbo83 »

Se è dichiarata solo dentro al metodo da lì non esce ed è quindi inutilizzabile.
misterxxitalia
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 838
Iscrizione: domenica 11 marzo 2007, 22:15

Re: [java] problema con metodo

Messaggio da misterxxitalia »

scusa mi potresti dire come fare?
Avatar utente
daemon_nio
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1012
Iscrizione: lunedì 15 gennaio 2007, 14:18
Sesso: Maschile
Località: London
Contatti:

Re: [java] problema con metodo

Messaggio 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
Ultima modifica di daemon_nio il venerdì 29 febbraio 2008, 12:50, modificato 1 volta in totale.
Sempre costruendo qualcosa di nuovo: Matag: The Game
Avatar utente
daemon_nio
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1012
Iscrizione: lunedì 15 gennaio 2007, 14:18
Sesso: Maschile
Località: London
Contatti:

Re: [java] problema con metodo

Messaggio 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.
Sempre costruendo qualcosa di nuovo: Matag: The Game
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti