我面临一个生成器类继承的序列化问题。如下所示:
@Getter
@Setter
public class NumberRuleConfig extends BaseRuleConfig{
private Double min;
private Double max;
private Double step;
private Map<String, Object> defaultValue;
@Builder
public NumberRuleConfig(Boolean enabled,
Boolean editable,
Double min,
Double max,
Double step,
Map<String, Object> defaultValue) {
super(enabled, editable);
this.min = min;
this.max = max;
this.step = step;
this.defaultValue = defaultValue;
}
public NumberRuleConfig(Boolean enabled, Boolean editable) {
super(enabled, editable);
}
}
基类:
@Getter
@AllArgsConstructor
public class BaseRuleConfig {
public Boolean enabled;
public Boolean editable;
public BaseRuleConfig() {
}
}
我看到以下例外:
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class com.example.NumberRuleConfig$NumberRuleConfigBuilder and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: java.util.ImmutableCollections$MapN["ruleSetDefinitions"]->com.example.RuleDefinitions["constraints"]->java.util.ArrayList[7]->com.example.NumberRule["config"])
at com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:77)
at com.fasterxml.jackson.databind.SerializerProvider.reportBadDefinition(SerializerProvider.java:1277)
at com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition(DatabindContext.java:400)
at com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.failForEmpty(UnknownSerializer.java:71)
at com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.serialize(UnknownSerializer.java:33)
有人知道如何避免这个问题吗?
以下注释可以正常工作:
@Jacksonized@SuperBuilder
问题内容: 我正在尝试仅使用json.net序列化类的继承属性。我知道[JsonIgnore]属性,但是我只想在某些情况下忽略它们,因此我改用了自定义JsonConverter。 这是我的课: 做一个简单的o.WriteTo(writer); 它给出的结果与不使用转换器的结果相同。当遍历属性并在属性上使用WriteTo时,它对于基本类型(int,字符串等)正常工作,但是集合存在问题。 预期: 得到
在Android应用程序中,我需要用一个抽象级别反序列化Kotlin数据类的Json数据。但我不知道如何在构造函数中放置正确的属性。 简单来说,假设我有一个形状: 有两个派生 和 所以我的目标是,不要实例化一个形状。所以,相反,总是反序列化它的派生。稍后,我需要处理其他类中的一些集合属性,如: 但我还必须知道每个元素的派生类型。 当我尝试用Gson反序列化给定的示例时 我总是有一个非法的辩论例外
问题内容: 我需要为每种构建类型创建构建器(基础)和特定的构建器。 …。 主要功能如下: File:Builder.go 接口 文件:nodebuilder.go 主要假设/过程: 要开始在每个模块上构建,我需要获取它的路径 我需要将模块复制到临时文件夹 我需要在其上运行构建(实现构建界面,如此类 ) 构建完成后,用dep压缩模块 将其复制到新的目标文件夹 注意:除了和之后(应专门处理),所有其他
由于无法解析最后一个链接调用,未定义方法,因此此调用将不会编译。所以这种方式要求所有调用都以特定的顺序链接起来,这是非常不切实际的,特别是对于一个深度层次结构树。 现在,在我寻找答案的过程中,我遇到了一个Java Builder类的子类,它建议使用奇怪的递归泛型模式。但是,由于我的层次结构不包含一个抽象类,所以这个解决方案对我不起作用。但是这种方法依赖于抽象和多态性来发挥作用,这就是为什么我不相信
问题:类A实现可序列化类B扩展了类A实现可序列化 现在我只使用类B作为运行时类型进行序列化。所以我有一个列表: 如果我现在反序列化它,我就得到了java。伊奥。OptionalDataException错误。我想知道的是,我的对象如何成为正确的运行时类型。反序列化: 如果在序列化时是类B的运行时类型,这是否会导致类B的运行时类型,或者我必须覆盖A的earch子类的默认序列化? 希望我没有错过任何明
我在某个地方读到boost的序列化库必须被编译(我忘了在哪里读的,否则我会发布链接)。 因此,我从source forge下载了最新版本,并将其提取到我项目中的一个路径中。现在呢? 编辑:尽管如此,我试图使用它,但没有编译它,但我得到了这个错误: 所以我认为原因是,它没有被编译。对吗?