Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ProGuard在使用对象序列化的应用程序上的用法_Java_Proguard_Serializable - Fatal编程技术网

Java ProGuard在使用对象序列化的应用程序上的用法

Java ProGuard在使用对象序列化的应用程序上的用法,java,proguard,serializable,Java,Proguard,Serializable,我有一个应用程序,它使用SaveData类(使用ObjectOutputStream保存序列化数据)和一个LoadData类(使用ObjectInputStream加载数据)。我试着在这里寻找帮助,但有些事情根本没有意义。他们使用的是私有void writeObject(java.io.ObjectOutputStream)代替void writeObject(java.lang.Object)和私有void readObject(java.io.ObjectInputStream)而不是公共对

我有一个应用程序,它使用SaveData类(使用ObjectOutputStream保存序列化数据)和一个LoadData类(使用ObjectInputStream加载数据)。我试着在这里寻找帮助,但有些事情根本没有意义。他们使用的是
私有void writeObject(java.io.ObjectOutputStream)
代替
void writeObject(java.lang.Object)
私有void readObject(java.io.ObjectInputStream)而不是
公共对象readObject()。那是怎么回事?还有,为什么我需要包括这些方法?我有一个数据类,它有一个
私有静态final long serialVersionUID
。我应该简单地说吗
-keepclassmembers数据实现java.io.Serializable{
静态最终长SerialVersionId;

}

看一看。更具体地说,.那么,签名不是在
.java
文件中使用它的方式?尽管如此,您可能会说类似于
myObject=oostream.readObject()其中
oostream
ObjectOutputStream
?或者这是一个我通常不处理的非常不同的readObject、writeObject(可能还有实现java.io.Serializable的任何类的一些幕后工作)
readObject
writeObject
方法是由
ObjectOutputStream
在内部使用的,您不应该直接调用它们,因此,它们是私有的。它们允许您创建自己的自定义序列化格式,而不是(或除了)使用
ObjectOutputStream
提供的默认格式。因此,即使
Data
只有一个serialVersionUID、get和set方法,您仍然必须包含
readObject
writeObject
的签名,以及其他序列化方法?否,
ObjectOutputStream
如果未指定,则仅使用默认方法(有关默认方法,请参阅)。序列化对象时发生错误的唯一方式是尝试序列化不可序列化的内容。