mardi 12 mai 2015

Daten aus Array in Klasse übertragen

Hallo
Ich habe eine Txt- Datei mit Kundenaufträgen die ich in Java einlesen will. Um die Kundenaufträge zu speichern habe ich eine Klasse „Auftrag“ erstell. Mein Plan war alle Kundenaufträge in ein Array zu speichern dass aus Elementen der Klasse besteht.
Leider sind meine Programmierkenntnisse etwas improvisiert. Daher musste ich mich ein bisschen mehr bei Quellen aus dem Internet bedienen.
Zum einlesen der Daten habe ich diese Quelle gefunden:
Aus Dateien lesen - Java als erste Programmiersprache - Javaschublade
Jetzt habe ich die Aufträge in einzelnen Strings. Um die Auftragsdaten zu zerteilen habe ich diese Quelle gefunden:
Rheinwerk Computing :: Java ist auch eine Insel – 4.8 Zerlegen von Zeichenketten
Jetzt habe ich die Auftragsdaten eines Auftrags in einem Array und will sie in eine Klassen übertragen. Und genau da entsteht ein Fehler die ich nicht beheben kann. Irgendwie kann ich den Inhalt des Arrays nicht in die Variablen der Klasse übertragen. Ich erhalte immer eine Fehlermeldung.
Quellcode Klasse „Auftrag“
Java Code:

  1. package verschnittallepotionen;
  2.  
  3. public class Auftrag {
  4. /* in dieser Kasse werden die einzelnen Aufträge gespeichert */
  5. String auftragnr;
  6. int laenge;
  7. int breite;
  8. int boegenmin;
  9. int boegenmax;
  10.  
  11. void Auftrag() {
  12. auftragnr = "";
  13. laenge = 0;
  14. breite = 0;
  15. boegenmin = 0;
  16. boegenmax = 0;
  17.  
  18. }
  19. }

Quellcode der Main:
Java Code:

  1. package verschnittallepotionen;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.FileReader;
  5. import java.io.IOException;
  6. import java.util.Arrays;
  7. import java.util.regex.Pattern;
  8.  
  9. public class verschnittallepotionenmain {
  10.  
  11. public static void main(String[] args) throws IOException
  12. {
  13. // TODO Auto-generated method stub
  14.  
  15. FileReader fr = new FileReader("auftraege.txt");
  16.  
  17. Auftrag alleauftraege[];
  18. String zeile = "";
  19. String[] auftragzeile;
  20. int i=0;
  21.  
  22. br.readLine(); // in der Zeile 0 steht kein Auftrag daher wird sie hier gelesen um sicher zu stellen, dass das auslesen der Aufträge mit dem ersten Auftrag beginnt
  23.  
  24. while( (zeile = br.readLine()) != null )
  25. {
  26. //System.out.println(zeile);
  27. auftragzeile = zeile.split( Pattern.<i>quote</i>( "|" ) );
  28. System.<i>out</i>.println( Arrays.<i>toString</i>(auftragzeile) );
  29. //alleauftrag[i]= auftrag;
  30.  
  31. alleauftraege[i].auftragnr = auftragzeile[0];
  32. i++;
  33. }
  34.  
  35. br.close();
  36. }
  37. }


Fehlermeldung:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The local variable alleauftraege may not have been initialized

at verschnittallepotionen.verschnittallepotionenmain.main(verschnittallepotionenmain.java:39)

Ich bin mir sicher, dass der Fehler mit der Zeile
Java Code:

  1. <u> alleauftraege</u>[i].auftragnr = auftragzeile[0];

zu tun hat. Denn wenn ich diese Zeile auskommentiere bekomme ich keine Fehlermeldung. Als Programmierumgebung verwende ich Eclipse Version: Luna Service Release 2 (4.4.2)
Falls jemand weiß wo der Fehler liegt wäre ich dankbar.


Daten aus Array in Klasse übertragen

0 commentaires:

Enregistrer un commentaire