4

我正在尝试扩展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

任何帮助是极大的赞赏

4

1 回答 1

3

您可以做的是存储文件的名称或将数据发送到的 URL。当您的应用程序重新加载此信息时,它会重新创建编写器。


您遇到的问题不仅是类,而且您想要保留的所有字段也是可序列化的。大多数流不是可序列化的,因此您需要对这些流进行自定义序列化。

那么如何在两者之间添加一个类,其中包含一个扩展的无参数构造函数

添加一个不带参数的构造函数。您需要使用构造函数的参数调用 super ,这是困难的部分。

你遇到的最大问题是你试图序列化一些不是设计为序列化的东西。

于 2012-07-18T10:33:48.253 回答