java.io. NotSerializableException, даже если я реализую «Serializable»

У меня небольшая проблема: Я хотел протестировать сериализацию на Android (используя eclipse) и нашел пример того, как это сделать это. Я знаю, что мне нужно реализовать "Serializable" в классе, который я хочу сериализовать, я уже сделал это и всегда получаю исключение java.io.NotSerializableException. Вот код:

public void Button(View view) throws IOException, ClassNotFoundException {
ser test = new ser();
    test.x = 204;
    test.y = 2843;
    test.speed = 12;
    test.direction = 1343;
    test.a = 493;
    test.b = 2323;
    test.c = 29489;
    test.d = 394;

    byte[] arr = serialize(test);

    ser res = (ser) deserialize(arr);
}


public static byte[] serialize(Object o) { 
    ByteArrayOutputStream bos = new ByteArrayOutputStream();  
    try {   
        ObjectOutput out = new ObjectOutputStream(bos);      
        out.writeObject(o);                                       //This is where the Exception occurs
        out.close();     
        // Get the bytes of the serialized object    
        byte[] buf = bos.toByteArray();   
        return buf;    
    } catch(IOException ioe) { 
        Log.e("serializeObject", "error", ioe);           //"ioe" says java.io.NotSerializableException exception
        return null; 
    }  

}


public static Object deserialize(byte[] b) {  
        try {    
            ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(b));    
            Object object = in.readObject();    
            in.close();  
            return object;  
        } catch(ClassNotFoundException cnfe) {   
            Log.e("deserializeObject", "class not found error", cnfe);   
            return null;  
        } catch(IOException ioe) {  
            Log.e("deserializeObject", "io error", ioe);    
            return null; 
        } 
    } 

class ser implements Serializable {
    float x, y, speed, direction, a, b, c, d;
}

Надеюсь, вы можете мне помочь, я не знаю, что я сделал не так ...

Изменить: мои импортированные данные:

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
import java.io.Serializable;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
6
задан user1059863 22 November 2011 в 14:52
поделиться