【java – 将serialVersionUID添加到已在使用的可序列化类中】教程文章相关的互联网学习教程文章

Java序列化

项目需要消息发送,消息需要序列化之后再传递。原来的方法是固定字段个数采取分隔符的类似文本方式,希望采取json的格式,结果发现换成json之后性能很差。所以到网上找各种消息传递方式+序列化方法。 消息传递方式采取了netty的udp方式。序列化看了avro的方式,发现avro也有自己的消息方式,比如nettyserver , httpserver, socketserver之类。但发现个问题,这些server的写法都是类似的,server必须返回响应,更像rpc的远程方法调用...

java – GSON反序列化字符串或字符串数​​组【代码】

我在反序列化包含0到多个子对象的对象时遇到了一些麻烦,这些对象可以包含字符串或特定值的字符串数组. 这是一个JSON示例{ "name": "process name", "tasks": [{"name": "task 1","fields": [{"name": "field 1","value": "123abc"},{"name": "field 2","value": ["value 1", "value 2"]}]},{"name": "task 2","fields": []}] }我有一个Java实体设置来匹配这个结构,如下所示:public class Process {public Process() {}public Stri...

Java 序列化和反序列化(二)Serializable 源码分析 - 1【图】

目录 Java 序列化和反序列化(二)Serializable 源码分析 - 1 1. Java 序列化接口Java 序列化和反序列化(二)Serializable 源码分析 - 1 在上一篇文章中讲解了一下 Serializable 的大致用法,本节重点关注 Java 序列化的实现,围绕 ObjectOutputStream#writeObject 方法展开。 1. Java 序列化接口 Java 为了方便开发人员将 Java 对象进行序列化及反序列化提供了一套方便的 API 来支持。其中包括以下接口和类:Serializable 和 Ext...

java – 如何反序列化EnumMap【代码】

我正在试图弄清楚如何反序列化EnumMap.到目前为止,我一直在使用Gson库来获取其他所有内容并且已经成功.这证明是困难的. 这是一个基本想法:import java.lang.reflect.Type; import com.google.gson.reflect.TypeToken; import com.google.gson.Gson;enum FRUIT {APPLE, BANANA } EnumMap<FRUIT, String> fruitMap; Gson gson = new Gson();public void setFruitMap(String jsonString){Type typeToken = new TypeToken<EnumMap<FRU...

Android 1.6 ksoap2“RuntimeException:无法序列化:java.util.GregorianCalendar ..”,同时传递datetime参数

我必须使用kso??ap2 api在android中调用.net web服务.我的代码适用于将参数传递为String或int.但它在传递Calendar对象作为参数时显示“java.lang.RuntimeException:无法序列化:java.util.GregorianCalendar …..”.我将日期转换为字符串并将其解析为日期对象,但这并不令人担忧. 有人帮帮我. 谢谢.解决方法:传递日期的最简单方法是作为字符串,但如果要将其作为日期传递,则需要编写Marshal接口的类并注册信封.这基本上告诉KSOAP如何...

如何正确使用Java序列化?【代码】【图】

前言 什么是序列化:将对象编码成一个字节流,这样一来就可以在通信中传递对象了。比如在一台虚拟机中被传递到另一台虚拟机中,或者字节流存储到磁盘上。 “关于Java的序列化,无非就是简单的实现Serializable接口”这样的说法只能说明停留在会用的阶段,而我们想要走的更远往往就需要了解更多的东西,比如:为什么要实现序列化?序列化对程序的安全性有啥影响?如何避免多余的序列化?… 本文主要参考资料《Effective Java》,其中...

java – 从Callable返回的本地类的序列化【代码】

这是一个脑力激荡者. 我知道这个实际代码在很多层面都很糟糕.我的问题不是如何做到这一点(我知道静态初始化块),但为什么这不起作用,为了我理解Java序列化的好处. 为什么这样做import java.io.*; import java.util.*;class Main {static Comparator<String> COMPARE_STRING_LENGTH;static {class CompareStringReverse implements Comparator<String>, Serializable {public int compare(String o1, String o2) {return o1.length()...

java – 没有实现可序列化的JAXB对象有什么后果?【代码】

我希望有人可以为我澄清这一点,以便我能更好地理解JAXB对象的编组是如何工作的. 通过阅读和查看示例,我理解JAXB对象必须实现java.io.Serializable,以便可以正确编组和解组对象.我有点不确定的部分是当你的一个JAXB对象没有实现可序列化时会发生什么(读:后果是什么)?这在过去发生过并导致日志文件中的错误类似于ERROR [example.package.name.MyJaxbClass.data]DiskStorageFactory.call{503} | Disk Write of -309037891 failed: ...

java – 更改gson中的默认枚举序列化和反序列化【代码】

我正在以一种略微“不同”的方式使用Gson,我想知道以下是否可行…… 我想更改枚举的默认序列化/反序列化格式,以便它使用完全限定的类名,但在所述枚举上保持对@SerializedName注释的支持.基本上,鉴于以下枚举…package com.example; public class MyClass {public enum MyEnum {OPTION_ONE, OPTION_TWO, @SerializedName("someSpecialName")OPTION_THREE} }我想以下是真实的……gson.toJson(MyEnum.OPTION_ONE) == "com.example.MyC...

java – Gson序列化取决于字段值【代码】

我有一个类似于以下的POJO:public class MyGsonPojo {@Expose@SerializedName("value1")private String valueOne;@Expose@SerializedName("value2")private boolean valueTwo;@Expose@SerializedName("value3")private int valueThree;// Getters and other stuff here }问题是必须将此对象序列化为json主体以进行调用到服务器.某些字段对于请求是可选的,如果我甚至使用默认值和空值发送它,则API会以不同的方式响应(不幸的是,更改...

java – 使用Avro嵌套的特定类型反序列化【代码】

以下是我用于生成Avro类的架构的相关部分{"namespace": "com.namespace.kafka.event","type": "record","name": "RecordName","fields": [// some fields declared...{"name": "products", "type": { "type": "array", "items": {"name": "productInfo","type": "record","fields" : [{"name": "productId", "type": "int"},{"name": "productScore", "type": "float"}]}} },// some more fields declared ...]} 我能够为这个模式生...

java – 为什么在枚举类中禁止默认序列化【代码】

参见英文答案 > Is custom enum Serializable too? 3个我一直在搜索web以查找与java中的枚举类相关的一些查询的答案. 我的查询是为什么在枚举类中阻止了默认的反序列化.我可以看到enum类实现了Serializable接口,但它也有2个方法如下 – private void readObject(ObjectInputStream in) throws IOException,ClassNotFoundException {throw new InvalidObjectException("can't deserialize enum"...

java – 从文件中了解可序列化的对象数量【代码】

我正在使用Serializable从文件中读取对象:public ArrayList<Object> deserialzePerson(String filename) {Object obj = null;ObjectInputStream ois;try {ois = new ObjectInputStream(new FileInputStream(filename));for (int i = 0; i < 100; i++) {obj = (Object) ois.readObject();ObjectArray.add(obj);}} catch (Exception e) {}return ObjectArray; }但是,我不知道文件中的对象数量,并在for循环中使用数字“100”.如果小于...

java – 用杰克逊反序列化到Map【代码】

我有以下JSON:{"parameters": [{"value": "somevalue","key": "somekey"},{"value": "othervalue","key": "otherkey"}] }请注意,此响应的合同保证密钥是唯一的. 我想将其分解为以下类:public class Response {public Map<String, String> parameters;}我如何使用杰克逊图书馆这样做?解决方法:您需要注册反序列化器:ObjectMapper mapper = new ObjectMapper(); SimpleModule module = new SimpleModule(); module.addDeserializ...

java – Json使用jackson进行动态反序列化【代码】

我已经看过“Jackson dynamic property names”的问题,但它并没有真正回答我的问题. 我想反序列化这样的东西:public class Response<T> {private String status;private Error error;private T data; }但是数据可以具有不同的名称,因为存在不同的服务并且返回具有不同数据的相同结构.例如’用户’和’合同’:{response: {status: "success",user: {...}} }要么{response: {status: "failure",error : {code : 212, message : "Un...

序列化 - 相关标签