Generics und Serialization

  • Hallo. Ich habe folgendes Problem. Es geht um Serialiserung von Objekten, und zwar von einem Vector Objekt. Ist es überhaupt möglich einen Vector zu serialisieren?
    Bei der Serialisierung habe ich kein Problem, aber wenn ich es deserialisiere(loadTransactions methode) bekomme ich diese Meldung:
    Note: ./Kassa.java uses unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.

    hier ist ein kurzer ausschnitt meines codes:

    Ich bin ziemlich sicher dass es um Generics geht, also casting von Typen. Hat wer eine Idee, wie ich das lösen könnte?

    "...In God we trust but just incase keep it loaded and locked ready to rock and shake the spot..."
    The Foundation

    Si vis pacem, para bellum.

  • Du serialisierst ein Objekt vom Typ Vector<Zahlung> aber Du deserialisierst es als ein Objekt vom Typ Vector .

    ersetze mal

    verbuchungen = (Vector)temp;

    durch

    verbuchungen = (Vector<Zahlung>)temp;

    Du bekommst dann immern noch eine (andere) warnung, weil die Type informaitonen beim Serialisieren leider veroren gehen. Du kannst diese Wahrnung aber getrost ignorieren, denn du weisst ja das das Objekt vom Type Vector<Zahlung> ist.

  • Das war auch eine von hundert Kombinationen die ich probierte, und lieferte kein Erfolg. Dh. Compiler spuckt "...unsafe or unchecked operations" Meldung aus.

    Das Programm würde auch so funktionieren, aber ich brauche es so, dass Compiler keine Fehlermeldungen ausgibt. Ich habs geschafft, indem ich den Inhalt von Vector speichere und nicht das ganze Vector. Es sieht jetzt so aus:


    [/COLOR]

    "...In God we trust but just incase keep it loaded and locked ready to rock and shake the spot..."
    The Foundation

    Si vis pacem, para bellum.

  • Hallo Ghoust. Deine Loesung ist doch arg umstaendlich, vor allem da du dieses problem bei deinem naechsten programm wahrscheinlich gleich wieder haben wirst.

    Die Warnung, die du nach

    Code
    Vector<Zahlung> foo = (Vector<Zahlung>) object;

    bekommst ist kein Fehler, sondern eigentlich ein bug, der auf die Technik zurueckzufuehren ist, mit der in Java Generics umgesetzt wurden.

    Code
    Vector foo = (Vector) object;

    waere z.B. genauso unsicher, aber hier gibt es keine Warnung beim Casten.

    Wenn Du die Warnung einfach nicht mehr sehen willst, schreibe

    @SuppressWarnings("unchecked")

    vor die zeile und sie ist weg.

    Naeheres zu diesem Problem findest Du z.B. hier:

    http://forum.java.sun.com/thread.jspa?th…ssageID=4097246

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!