Objekt befüllen

Status
Nicht offen für weitere Antworten.

silko

Mitglied
Hallo Leute,

habe da ein Problem:
ich bekomme 2 csv Listen, die ich einlese und die spalten (sind durch @ getrennt) dann zeilenweise an ein Objekt gebe.
So sieht das ganze bei mir aus:
Code:
String test1Line;
String test2Line;

BufferedReader test1Reader = CSVReader.getInstance().getReader("csv/test1.txt");
BufferedReader test2Reader = CSVReader.getInstance().getReader("csv/test2.txt");

// get lines
while (((test1Line = test1Reader.readLine()) != null)
		&& ((test2Line = test2Reader.readLine()) != null)) {
			// get colums
			String[] test1Columns = test1Line.split("@");
				String[] test2Columns = test2Line.split("@");
				// fülle Objekt
				DatenBO testBO = new DatenBO(test1Columns, test2Columns);

jetzt möchte ich im Konstruktor von DatenBO nur die Daten für bestimmte Felder (4 Felder)reinfüllen, da ich für eine spätere Filterung nur bestimmte Spalten brauche. Es wäre daher ja unnötig alle felder zu befüllen. Wie mache ich das jetzt im Konstruktor?
Code:
public DatenBO(String[] test1Columns, String[] test2Columns) {
		....
                ....
	}
 
Ich versteh' die Frage nicht ganz. Meinst du sowas?

Code:
public DatenBO(String[] test1Columns, String[] test2Columns) { 
    meinFeld1 = test1Columns[3];
    meinFeld2 = test2Columns[4711];
}
 
ja so ungefähr.

ich habe davor jedoch ein enum gebaut um nicht die Indizes benutzen zu müssen.



Code:
public interface test1Enum{
public static final int FELD1 = 0;
public static final int FELD2 = 1;
public static final int FELD3 = 2;
public static final int FELD4 = 3;
public static final int FELD5 = 4;

...
...
}

dann folgt die Befüllung der benötigten Felder im Konstruktor:
Code:
public DatenBO(String[] test1Columns, String[] test2Columns) {
    meinFeld1 = test1Columns[test1Enum.FELD1];
    meinFeld2 = test2Columns[test1Enum.FELD4];
}

meine Frage: Ist mein Denkansatz (und der Code) richtig?
 
Ähm, wozu die Enums?

Also ich schreibe lieber
Code:
meinFeld1 = test1Columns[0]
statt
Code:
meinFeld1 = test1Columns[test1Enum.FELD1]
 
Das Enum halte ich an der Stelle auch für Overkill 😉
Ich würde allerdings die Parameter noch auf Gültigkeit prüfen (nicht null etc.)
 
Danke erst mal...
Das Enum dient nur zur Bequemlichkeit. So muß ich bei 44 Feldern nicht immer zählen welches es ist und dann 1 abziehen.
Wie setze ich ein trim ein um vor der Befüllung leere Zeichen vor und nach dem String abzuschneiden?
 
silko hat gesagt.:
Das Enum dient nur zur Bequemlichkeit. So muß ich bei 44 Feldern nicht immer zählen welches es ist und dann 1 abziehen.
Und in dem Fall zählst du ohne eins abzuziehen?

Wie setze ich ein trim ein um vor der Befüllung leere Zeichen vor und nach dem String abzuschneiden?

äh,
Code:
meinFeld1 = test1Columns[test1Enum.FELD1].trim()
Oder was meinst du?
 
ja danke, das paßt.
Das mit dem enum überlege ich mir noch.
So brauche ich halt nicht immer nachschauen an welcher Stelle dieses Feld kommt und dann 1 abziehen.
Und zusätzlich kann ich mich mit jemanden (anhand der Namen und nicht Nummern) unterhalten, der nicht aus der Programmierwelt kommt.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben