草庐IT

SERIALIZATION

全部标签

java - java序列化如何在未指定默认构造函数时反序列化最终字段?

我有一个类定义了我现在需要序列化的不可变值类型。不变性来自构造函数中设置的最终字段。我已经尝试过序列化,它可以工作(令人惊讶?)-但我不知道如何。这是一个类的例子publicclassMyValueTypeimplementsSerializable{privatefinalintvalue;privatetransientintderivedValue;publicMyValueType(intvalue){this.value=value;this.derivedValue=derivedValue(value);}//gettersetc...}鉴于该类没有无参数构造函数,如何将

java - 在java中将任何对象转换为字节数组

我有一个X类型的对象,我想在将其发送到S3之前将其转换为字节数组。谁能告诉我该怎么做?感谢您的帮助。 最佳答案 您要执行的操作称为“serialization”。有几种方法可以做到,但如果你不需要任何花哨的东西,我认为使用standardJavaobjectserialization会做得很好。也许你可以使用这样的东西?packagecom.example;importjava.io.ByteArrayInputStream;importjava.io.ByteArrayOutputStream;importjava.io.IOEx

java - 在java中将任何对象转换为字节数组

我有一个X类型的对象,我想在将其发送到S3之前将其转换为字节数组。谁能告诉我该怎么做?感谢您的帮助。 最佳答案 您要执行的操作称为“serialization”。有几种方法可以做到,但如果你不需要任何花哨的东西,我认为使用standardJavaobjectserialization会做得很好。也许你可以使用这样的东西?packagecom.example;importjava.io.ByteArrayInputStream;importjava.io.ByteArrayOutputStream;importjava.io.IOEx

java - 如何将java序列化对象写入和读取到文件中

我打算将多个对象写入一个文件,然后在我的代码的另一部分中检索它们。我的代码没有错误,但无法正常工作。你能帮我找出我的代码有什么问题吗?我从不同的网站阅读了不同的代码,但没有一个对我有用!这是我将对象写入文件的代码:MyClassList是一个数组列表,其中包含我的类的对象(必须写入文件)。for(intcnt=0;cnt我在输出流的构造函数中添加了“true”,因为我想将每个对象添加到文件末尾。对吗?这是我从文件中读取对象的代码:try{streamIn=newFileInputStream("G:\\address.ser");ObjectInputStreamobjectinput

java - 如何将java序列化对象写入和读取到文件中

我打算将多个对象写入一个文件,然后在我的代码的另一部分中检索它们。我的代码没有错误,但无法正常工作。你能帮我找出我的代码有什么问题吗?我从不同的网站阅读了不同的代码,但没有一个对我有用!这是我将对象写入文件的代码:MyClassList是一个数组列表,其中包含我的类的对象(必须写入文件)。for(intcnt=0;cnt我在输出流的构造函数中添加了“true”,因为我想将每个对象添加到文件末尾。对吗?这是我从文件中读取对象的代码:try{streamIn=newFileInputStream("G:\\address.ser");ObjectInputStreamobjectinput

java - 高性能序列化 : Java vs Google Protocol Buffers vs . ..?

对于我正在考虑为即将到来的项目做的一些缓存,我一直在考虑Java序列化。即,应该使用它吗?现在我在过去的几年中出于各种原因编写了自定义序列化和反序列化(Externalizable)。如今,互操作性已成为一个更大的问题,我可以预见到需要与.Net应用程序交互,因此我考虑使用独立于平台的解决方案。有没有人有过高性能使用GPB的经验?它在速度和效率方面与Java的原生序列化相比如何?或者,还有其他值得考虑的方案吗? 最佳答案 我没有在速度方面将ProtocolBuffers与Java的native序列化进行比较,但对于互操作性,Java

java - 高性能序列化 : Java vs Google Protocol Buffers vs . ..?

对于我正在考虑为即将到来的项目做的一些缓存,我一直在考虑Java序列化。即,应该使用它吗?现在我在过去的几年中出于各种原因编写了自定义序列化和反序列化(Externalizable)。如今,互操作性已成为一个更大的问题,我可以预见到需要与.Net应用程序交互,因此我考虑使用独立于平台的解决方案。有没有人有过高性能使用GPB的经验?它在速度和效率方面与Java的原生序列化相比如何?或者,还有其他值得考虑的方案吗? 最佳答案 我没有在速度方面将ProtocolBuffers与Java的native序列化进行比较,但对于互操作性,Java

java - 使用 Gson 序列化和反序列化枚举

这个问题在这里已经有了答案:UsingEnumswhileparsingJSONwithGSON(7个回答)关闭7年前。如何使用gson2.2.4序列化和反序列化这样的简单枚举?publicenumColor{RED,BLUE,YELLOW;} 最佳答案 你可以试试这个。importcom.google.gson.annotations.SerializedName;publicenumColor{@SerializedName("0")RED(0),@SerializedName("1")BLUE(1),@SerializedNa

java - 使用 Gson 序列化和反序列化枚举

这个问题在这里已经有了答案:UsingEnumswhileparsingJSONwithGSON(7个回答)关闭7年前。如何使用gson2.2.4序列化和反序列化这样的简单枚举?publicenumColor{RED,BLUE,YELLOW;} 最佳答案 你可以试试这个。importcom.google.gson.annotations.SerializedName;publicenumColor{@SerializedName("0")RED(0),@SerializedName("1")BLUE(1),@SerializedNa

java - 最终 transient 字段和序列化

在Java中序列化后是否可以将finaltransient字段设置为任何非默认值?我的用例是一个缓存变量——这就是它是transient的原因。我还有一个习惯,就是制作不会改变的Map字段(即map的内容改变了,但对象本身保持不变)final。然而,这些属性似乎是矛盾的——虽然编译器允许这样的组合,但在反序列化之后,我不能将该字段设置为null之外的任何内容。我尝试了以下方法,但没有成功:简单的字段初始化(如示例所示):这是我通常所做的,但在反序列化后似乎没有进行初始化;在构造函数中初始化(我相信这在语义上与上面相同);在readObject()中分配字段-由于该字段是final,因此