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...
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
è 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.