was ist hier falsch? array initialisieren

turndevil

Mitglied
Hallo.

Wieso bekomme ich hier eine NullPointerException? Ich denke mal weil die Arrays nicht initialisiert sind. Aber wie mach ich das? Habe schon etliche for Schleifen probiert aber hilft nix. Steh irgendwie aufm Schlauch.

Code:
public String[] nameArr;
public String[] pathArr;
public String[] extArr;
	
public Suche(DatVector dv){
   File file;
   String filename;		
		
   for (int i = 0; i <= dv.v.capacity(); i++)
   {
      filename = (String)dv.v.elementAt(i); 
      file = new File(dv.v.elementAt(i).toString());
			
//splitten von name und endung
      String[] arr = (file.getName()).split("\\.");
			
      nameArr[i] = arr[0];
      extArr[i] = arr[1];
//erstellen des pfadarray
      pathArr[i] = file.getPath();}

Schonmal Danke im Voraus. =)

mfg
tom
 
Original geschrieben von turndevil
Hallo.

Wieso bekomme ich hier eine NullPointerException? Ich denke mal weil die Arrays nicht initialisiert sind. Aber wie mach ich das? Habe schon etliche for Schleifen probiert aber hilft nix. Steh irgendwie aufm Schlauch.

Code:
public String[] nameArr;
public String[] pathArr;
public String[] extArr;
	
public Suche(DatVector dv){
   File file;
   String filename;		
		
   for (int i = 0; i <= dv.v.capacity(); i++)
   {
      filename = (String)dv.v.elementAt(i); 
      file = new File(dv.v.elementAt(i).toString());
			
//splitten von name und endung
      String[] arr = (file.getName()).split("\\.");
			
      nameArr[i] = arr[0];
      extArr[i] = arr[1];
//erstellen des pfadarray
      pathArr[i] = file.getPath();}


Schonmal Danke im Voraus. =)

mfg
tom

Du musst die Arrays natürlich erst einmal mit einer Größe anlegen, bevor Du sie füllst. Ungefähr so:
...
Code:
   nameArr = new String[dv.v.capacity()];
   extArr = new String[dv.v.capacity()];
   pathArr = new String[dv.v.capacity()];
   for (int i = 0; i <= dv.v.capacity(); i++)
usw.

Übrigens auch hier:

dv.v.capacity()

ist ein no-no. Zugriff auf die Variable v sollte mit einer get...()-Methode geschehen und die Variable dann als private deklarieren.
Eclipse ist dabei übrigens sehr hilfreich. Da gibt es über die rechte Maustaste -> Source -> generate Getter and Setter, was die entsprechenden Methoden für die angelegten Variablen automatisch erzeugt.
 
Zurück