我正在尝试在其具有接口(interface)的构造函数中序列化一个对象,我将解释:
这是对象类:
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;
}
}
这是MyCallback界面:
public interface MyCallback extends Serializable {
long serialVersionUID = -1306760703066967345L;
void onMyCallbackClickListener();
}
但是当我尝试用(out
is ObjectOutputStream
)编写它时:
MyCallback myCallback = new MyCallback() {
@Override
public void onMyCallbackClickListener() {
Toast.makeText(getApplicationContext(), "TEST!", Toast.LENGTH_LONG).show();
}
};
out.writeObject(myCallback);
或者用:
out.writeObject(new MyObj("Test", myCallback));
它抛出:
java.io.NotSerializableException
最佳答案
匿名内部类是不可序列化的。在这里查看很好的解释:NotSerializableException on anonymous class
关于java - 序列化接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41590091/