Newsgroup: it.comp.java
Titolo: Errore che non capisco

Ciao a tutti.
Stavo facendo alcune prove oggi, e mi sono trovato di fronte a un errore
che non capisco.
Il codice sotto viene compilato correttamente, ma all'esecuzione
ottengo l'errore:
java.lang.NullPointerException
 at progetto.Ricerca.main(Ricerca.java:94)
Exception in thread "main" Process Exit...
La cosa strana è che se nella riga che ho segnato come // ***** come scrivo
r.Elenco=new ArrayList();
tutto si risolve. Ma perchè? Questo comando non è già nel costruttore?
Che motivo c'è di riscriverlo, non dovrebbe essere stato già eseguito?
Grazie e arrivederci.
Misirion
package progetto;
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.*;
class Elemento {
 String Nome=new String();
 int cont;
}
public class Ricerca {
.......
 private static List Elenco;
 public void Ricerca() {
  Elenco=new ArrayList();
 }
.......
 public String getNome(int indice) {
  // Restituisce il nome del file corrispondente al indice-esimo elemento
dell'Elenco
  Object el=Elenco.get(indice);
  return ((Elemento)el).Nome;
 }
 public int getCont(int indice) {
  // Restituisce il Cont del file corrispondente al indice-esimo elemento
dell'Elenco
  Object el=Elenco.get(indice);
  return ((Elemento)el).cont;
 }
public static void main(String[] args) {
  String st=new String("Elenco misirion.txt+1258");
  Elemento el=new Elemento();
  Elemento el2=new Elemento();
  Ricerca r=new Ricerca();
     el.cont=Integer.parseInt(st.substring(st.lastIndexOf("+")+1));
     el.Nome=st.substring(st.indexOf(" ")+1,st.lastIndexOf("+"));
     // *****
     r.Elenco.add(el);
     el2.cont=12;
     el2.Nome="Pluto";
     r.Elenco.add(el2);
     System.out.println(st);
     System.out.println(el.cont);
     System.out.println(el.Nome);
     System.out.println(r.Elenco.indexOf(el));
     System.out.println(r.Elenco.indexOf(el2));
     System.out.println(r.getCont(1));
}
}

 public void Ricerca() {
^^^^^^^^^^^^^^^^^^^^^^^^
Questo NON è un costruttore.
public Ricerca() {}
Questo sì.
HTH
-- 
Ciao
	Fabrizio C.

Ciao Fabrizio, ti vorrei fare una domanda su questo argomento.
Essendo private Elenco è possibile accedere direttamente all'attributo
Elenco di r?  pensavo che fosse possibile solo accedere a this.Elenco.
ciao!
Fabrizio Camera <f.came...@Mtiscali.it> wrote in message
MPG.16d649edf...@powernews.libero.it...


 wrote in message
bHWa8.19958$Jo.5...@twister2.libero.it...


pensavo che fosse possibile solo accedere a this.Elenco.
Questa frase (che mi sembra sbagliata) andrebbe spiegata un po' :-)
Il punto è che, all'esecuzione del metodo *statico* main, non esiste 
nessun this.
All'interno degli altri metodi (non static) della classe Ricerca, 
invece, il this è implicito (e superfluo, ma sono gusti) e si ha piena 
visibilità delle variabili private (ci mancherebbe!).


riferimento per avere delle risposte chiare e precise :-))
Troppo buono :-D
(come si disegnano con le faccine le lacrime di commozione? :-)
-- 
Ciao
	Fabrizio C.

:-)  Leggendo frettolosamente la definizione della variabile oggetto Elenco
non avevo notato lo static.
Per quanto riguarda il this era solo un tentativo non riuscito di spiegarmi
:-))
Fabrizio Camera <f.came...@Mtiscali.it> wrote in message
MPG.16d753549...@powernews.libero.it...
