I'm trying to serialize an object in its constructor that has an interface, I'll explain:
This is Object class:
public class MyObj implements Serializable{
private static final long serialVersionUID = -29238982928391L;
private MyCallback onMyCallback;
private String shortcutsText;
public MyObj(String shortcutsText, MyCallback onMyCallback){
this.shortcutsText = shortcutsText;
this.onMyCallback = onMyCallback;
}
public MyCallback getOnMyCallback() {
return onMyCallback;
}
}
This is MyCallback interface:
public interface MyCallback extends Serializable {
long serialVersionUID = -1306760703066967345L;
void onMyCallbackClickListener();
}
But when I try to write it with (out
is ObjectOutputStream
):
MyCallback myCallback = new MyCallback() {
@Override
public void onMyCallbackClickListener() {
Toast.makeText(getApplicationContext(), "TEST!", Toast.LENGTH_LONG).show();
}
};
out.writeObject(myCallback);
Or with:
out.writeObject(new MyObj("Test", myCallback));
It throws:
java.io.NotSerializableException