hallo zusammen
ich habe vor kurzer zeit schon einmal diese frage gestellt, aber es hat damals niemand geantwortet.
ich habe nun einen lösungsansatz, komme aber nicht weiter.
ich habe eine methode geschrieben, welcher man ein beliebiges objekt übergeben kann.
z.b ein object der klasse TestClassA.
dieses objekt sollte dann folgendermassen in ein file gespeichert werden:
ich dachte mir, jedesmal wenn ein object kommt, oder ein array von objecten dann rufe ich die methode saveObject wieder mit diesem object auf:
im moment weiss ich nicht weiter wie ich am besten das array ausgebe und wie ich erkennen kann, ob es ein basistyp ist?
kann mir da jemand weiterhelfen?
ach ja, ich mache das ganze so, damit ich die werte eines objectes im file bearbeiten kann.
sonst könnte ich es ja auch mit serialisieren machen!
liebe grüsse
miguelgalaxy
ich habe vor kurzer zeit schon einmal diese frage gestellt, aber es hat damals niemand geantwortet.
ich habe nun einen lösungsansatz, komme aber nicht weiter.
ich habe eine methode geschrieben, welcher man ein beliebiges objekt übergeben kann.
z.b ein object der klasse TestClassA.
Code:
class TestClassA{
int err;
int id;
TestClassB b;
}
class TestClassB{
int mode;
TestClassC[] c;
}
class TestClassC{
int[] iArr;
int[] i2Arr;
}
dieses objekt sollte dann folgendermassen in ein file gespeichert werden:
Code:
err = 1;
id = 2;
b.mode = 2;
b.c[0].iArr[0] = 13;
b.c[0].iArr[1] = 2;
b.c[0].iArr[2] = 534;
b.c[0].i2Arr[0] = 21;
b.c[0].i2Arr[1] = 23;
b.c[0].i2Arr[2] = 1;
b.c[1].iArr[0] = 3425;
b.c[1].iArr[1] = 64;
b.c[1].iArr[2] = 23;
b.c[1].i2Arr[0] =34;
b.c[1].i2Arr[1] = 6;
b.c[1].i2Arr[2] = 23;
ich dachte mir, jedesmal wenn ein object kommt, oder ein array von objecten dann rufe ich die methode saveObject wieder mit diesem object auf:
Code:
public void saveObject(PrintWriter out, Class c) {
this.out = out;
this.publicFields = c.getFields();
for (int i = 0; i < publicFields.length; i++) {
Class cl = publicFields[i].getType();
if(publicFields[i].getType().getFields().length > 0){
//Object
this.saveObject(out,publicFields[i].getType());
}
else if(cl.isArray()){
//array
int length = 0;
String type = "";
length = cl.getName().length();
type = cl.getName().substring(cl.getName().length()-1,cl.getName().length());
if(type.equals("L")){
//array von objecten
this.saveObject(out,publicFields[i].getType());
}
else{
//array von basistypen
//... ausgabe des arrays
}
}
else if(...ist es ein basistyp?){
// ausgabe des basistyps
}
}
}
im moment weiss ich nicht weiter wie ich am besten das array ausgebe und wie ich erkennen kann, ob es ein basistyp ist?
kann mir da jemand weiterhelfen?
ach ja, ich mache das ganze so, damit ich die werte eines objectes im file bearbeiten kann.
sonst könnte ich es ja auch mit serialisieren machen!
liebe grüsse
miguelgalaxy