Erkennt Objekt nach dem Deserialisierung nicht

osion

Bekanntes Mitglied
Also bin jetzt schon 2 h daran rauszufinden, warum er mir beim Return Wert sagt, dass die Variabeln nicht existiert.

Java:
public belege belegeInfoLesen() {
	InputStream fis = null;
	InputStream fis2 = null;

	try {
		fis = new FileInputStream("info.txt");
		ObjectInputStream o = new ObjectInputStream(fis);
		belege belegInfo = (belege) o.readObject();

	} catch (IOException e) {
		System.err.println(e);
	} catch (ClassNotFoundException e) {
		System.err.println(e);
	} finally {
		try {
			fis.close();
		} catch (Exception e) {
		}
	}
	
	try {
	fis2 = new FileInputStream("belege.txt");
	ObjectInputStream a = new ObjectInputStream(fis2);
	List<belege> bestellungen = (List<belege>) a.readObject();
	} catch (IOException e) {
		System.err.println(e);
	} catch (ClassNotFoundException e) {
		System.err.println(e);
	} finally {
		try {
			fis2.close();
		} catch (Exception e) {
		}
	}
return belegInfo;
}

belegInfo cannot be resolved to a variable

Wenn ich deserialisiere erstellt er mir ja das Objekt und müsste es als Return zurück geben.
 
weil sie im try-catch-Block vereinbart(definiert) wird, und so möglicherweise beim return gar nicht existiert.

Du kannst sie z.b. vorher (mit null) definieren.
 
bei
Java:
public belege belegeInfoLesen() {

	try {
		belege belegInfo = new belege();

	} catch (Exception e) {
		System.err.println(e);
	} finally {
	}
	
return belegInfo;
}
gibt es übrigens dieselbe Fehlermeldung, das hat nicht das Geringste mit Deserialisierung/ ObjectStream zu tun,

wäre immer schön, auf solche Details zu achten, aber dann wäre es wohl gar nicht zur Frage gekommen 😉

Klassen unbedingt mit Großbuchstaben beginnen!
ist es nicht auffällig, wenn es in der API ObjectInputStream, Exception statt objectInputStream, exception heißt?
 
also konkret

Java:
public belege belegeInfoLesen() {
    InputStream fis = null;
    InputStream fis2 = null;
    belege belegInfo = null;
    try {
        fis = new FileInputStream("info.txt");
        ObjectInputStream o = new ObjectInputStream(fis);
        belegInfo = (belege) o.readObject();
...
 
also konkret

Java:
public belege belegeInfoLesen() {
    InputStream fis = null;
    InputStream fis2 = null;
    belege belegInfo = null;
    try {
        fis = new FileInputStream("info.txt");
        ObjectInputStream o = new ObjectInputStream(fis);
        belegInfo = (belege) o.readObject();
...

Cool danke =) eine einfache Idee ^^ aber auf die wäre ich jetzt nicht gekommen :applaus:


bei

gibt es übrigens dieselbe Fehlermeldung, das hat nicht das Geringste mit Deserialisierung/ ObjectStream zu tun,

Mir ist schon klar, dass die Fehlermeldung nur sagt das es die Variabel nicht findet und wo nichts ist kann auch nichts zurückgegeben werden. Ich dachte aber dass beim Serialisieren, das Objekt hergestellt wird wie beim Kopieren (in welche Klasse es ar, in welcher Methode usw.).

Sehe ich das falsch?
 
Ich dachte aber dass beim Serialisieren, das Objekt hergestellt wird wie beim Kopieren (in welche Klasse es ar, in welcher Methode usw.).

Sehe ich das falsch?

das denkst du richtig, hat aber, wie du eigentlich auch selber erklärst, immer noch/ trotzdem nichts mit der Fehlermeldung zu tun,
insofern ist der Zusammenhang, das 'Ich dachte aber ' etwas unverständlich


"Mein Auto fährt nicht weil die Luft raus ist. Ich dachte aber dass um 10.00 die Sonne aufgeht. Sehe ich das falsch?"

ist auch ganz egal, aber wenn du schon nachfragst, kann man es ja genau nehmen 😉
 

Zurück
Oben