Warum ist meine Klasse nicht serialisierbar?

Habe ich die folgende Klasse:

import java.awt.Color;
import java.util.Vector;

public class MyClass {

    private ImageSignature imageSignature;

    private class ImageSignature implements Serializable {
        private static final long serialVersionUID = -6552319171850636836L;
        private Vector<Color> colors = new Vector<Color>();

        public void addColor(Color color) {
            colors.add(color);
        }

        public Vector<Color> getColors() {
            return colors;
        }
    }

    //Will be called after imageSignature was set, obviously
    public String getImageSignature() {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        ObjectOutputStream oos = new ObjectOutputStream(baos);
        oos.writeObject(imageSignature);
        oos.close();
        return String(Base64Coder.encode(baos.toByteArray()));
    }
}

Wenn ich versuche zu nennen getImageSignature() bekomme ich NotSerializableException - Warum ist das so? Alle Mitglieder, die serialisierbar sind, also warum bekomme ich diesen Fehler?

Ist die Farbe des Typs java.das awt.Farbe?
java.awt.Color und java.util.Vector
Getestet von code und es funktionierte ohne jedes problem. Habe Sie gereinigt und wieder aufgebaut und das komplette Projekt vor dem Start?
Ich kann auch nicht reproduzieren. Könnten Sie einen kompletten, lauffähigen Beispiel, das veranschaulicht das problem?
Okay ich denke ich habe einen Fehler bei weglassen der äußeren Klasse... ich aktualisierte die Frage, vielleicht ist es jetzt mehr Sinn macht?

InformationsquelleAutor Florian Peschka | 2012-02-23

Schreibe einen Kommentar