我正在尝试延长java.io.BufferedWriter
,因此请Serializable
。我尝试简单地扩展BufferedWriter
并实现Serializable
接口。它有两个构造函数,所以代码看起来像这样。
class SerializableBufferedWriter extends BufferedWriter implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1625952307886764541L;
public SerializableBufferedWriter(OutputStreamWriter osw, int size){
super(osw, size);
}
public SerializableBufferedWriter(OutputStreamWriter osw){
super(osw);
}
}
但是我在运行时得到一个无效的构造函数异常。在这里读到我之后,为了实现Serializable
的类,它的第一个非可序列化的超类需要有一个无参数的构造函数。那么如何使用扩展BufferedWriter
且由SerializableBufferWriter
扩展的无参数构造函数在中间添加一个类?
非常感谢任何帮助
答案 0 :(得分:3)
您可以执行的操作是存储要发送数据的文件名或URL。当您的应用程序重新加载此信息时,它会重新创建编写器。
你遇到的问题不仅仅是类,而且你想保留的所有字段都是Serializable。大多数流都不是Serializable,因此您需要为这些流进行自定义序列化。
那么如何使用扩展
的无参数构造函数在其间添加一个类
添加一个不带参数的构造函数。你需要使用构造函数的参数调用super,这是很难的部分。
您遇到的最大问题是您正在尝试序列化一些非设计为序列化的东西。