草庐IT

Pickle反序列化

全部标签

java - 使 "class"成为 transient 或可序列化但该类是可序列化的

在检查我的代码后,SonarQube5.1标记了很多关键问题。但是类本身和字段中的引用类也是可序列化的。被引用类通过类继承可序列化接口(interface)。这是我的例子publicclassAimplementsSerializable{privateBb;//->Sonarcubemarkesthisfieldasnotserialzable}B类定义如下publicclassBextendsC{....}C类定义如下publicabstractclassCextendsD{....}定义了类DpublicabstractclassDimplementsSerializable{.

java - 如何在反序列化对象中保留字段的默认值?

我的情况如下:对象TableC有4个字段。从JSON字符串中仅读取3个字段(field_C1、field_C2和field_C3)。第四个字段field_C4在具有默认值的对象中定义。当我序列化对象实例(用于输出)时-它忽略字段field_C4,我期望默认值为"1"或"null“。当我将程序中的实例字段的值显式定义为"NEW"时,它确实将其包含在Json输出字符串中。查看输出,在反序列化过程中创建对象实例时,构造函数似乎也被忽略了。激活对象实例的其他字段的最佳做法是什么-这些字段未包含在输入Json字符串的反序列化版本中?packagenewpackage;importjava.uti

java - Gson:序列化 java.nio.Path 导致 StackOverflowError

序列化它,导致StackOverFlowError:importjava.nio.file.Path;importjava.nio.file.Paths;publicclassTmp{privatePathpath=null;publicTmp(){path=Paths.get("c:\\temp\\");}}在我看来这像是一个错误!或者我做错了什么?是否有解决方法(期望编写一些将路径转换为字符串的自定义序列化程序)java.lang.StackOverflowErroratcom.google.gson.internal.$Gson$Types.resolve($Gson$Types

java - Jackson:获取反序列化的空引用

我将spring-mvc用于restful服务。通过添加依赖项,我的其余Controller自动从我的响应实体生成json。依赖性jackson='2.9.0'compile"com.fasterxml.jackson.core:jackson-databind:$jackson"对象@Getter@SetterpublicfinalclassUserDTO{[...]privateintid;privateSetactivities=Sets.newHashSet();}@Getter@SetterpublicfinalclassActivityDTO{[...]privateint

java - 具有嵌套类型信息属性的 Jackson 多态反序列化

我受到给定JSON结构的限制:{"metadata":{"eventName":"FooEvent","field1":"bla"},"event":{...}}如何使用多态反序列化和嵌套类型信息属性对其进行反序列化?我在@JsonTypeInfo中使用metadata.eventName嵌套属性,如下所示:@JsonTypeInfo(use=Id.NAME,include=As.EXISTING_PROPERTY,visible=true,property="metadata.eventName")@JsonSubTypes({@Type(name="fooEvent",value=

java - 使用 Scala 和 Jackson 以及 java.lang.Integer 或 scala.Int 对泛型类型进行奇怪的反序列化问题

我们都知道泛型类型在Java和Scala下会被类型删除。但是我们在使用Jackson和ScalaJackson模块的Scala中遇到了一个奇怪的问题。我创建了一个小测试来展示这个问题。importcom.fasterxml.jackson.databind.ObjectMapperimportcom.fasterxml.jackson.module.scala.DefaultScalaModuleobjectGenericTest{caseclassTestWithInt(id:Option[Int])caseclassTestWithInteger(id:Option[Integer

java - 将代理类序列化到文件

我有一个在JVM运行时生成的代理(生成为JDKProxy或CGLIB代理)。我想知道是否有办法将此类(看起来像com.sun.proxy$Proxy123.class)的内容写入文件,以便我可以使用类似jd-eclipse的反编译器来查看代码类型产生。由于该类存在于JVM中,我想知道是否有一种方法可以要求ClassLoader为实际类提供InputStream/URL,然后可用于将内容写入磁盘-以及磁盘上的这个文件可以使用jd-eclipse或javap读取。我知道这不是生产用例,但我很想看看这个动态生成的类的内容。谢谢! 最佳答案

java - 如何将 scala.collection.Set 转换为 java.util.Set 并在 RDD 中进行序列化

我有一个scala.collection.SetscalaSet:Set[Long]。我如何才能将其转换为可序列化的java.util.Set。我尝试了以下代码,但得到了java.io.notserializableexception:scala.collection.convert.wrappers$setWrapperimportscala.collection.JavaConversions._ClassMySerializableClassextendsSerializable{//methodtoimplementtheScalatoJavaoperationsonthegi

java - 反序列化对象图时 hashCode() 中的 NullPointerException

我在Java类中有一个final字段,它肯定会被初始化。当我序列化和反序列化相应的对象图时,我得到一个NPE,因为该字段在hashCode()方法中使用但显然尚未回读。我创建了一个最小的测试用例,其中还包含serialize()/deserialize()方法(以防这些有问题),但我似乎无法了解(潜在的)问题是什么或如何解决。publicclassTestSerializerTest{privatestaticfinalorg.slf4j.Loggerlogger=org.slf4j.LoggerFactory.getLogger(TestSerializerTest.class);p

java - 使用 Jackson 反序列化 JSON 时的隐式默认值

在反序列化各种JSON消息时,我想为某种类型的属性提供一个默认值。是generallysuggested只需在类中指定值,但如果您必须跨多个类执行此操作,这很容易出错。你可能会忘记一个并最终得到null而不是默认值。我的意图是设置所有属于Optional的属性。至Optional.absent.自null到底是什么Optional试图消除,事实证明将它们与jackson一起使用是令人沮丧的。Jackson的大多数允许您自定义反序列化过程的功能都集中在作为输入的JSON上,而不是围绕实例化您要反序列化的对象的过程。我似乎最接近通用解决方案的方法是构建我自己的ValueInstantiat