gpt4 book ai didi

java - 如何将 Immutables 与公共(public)构造函数一起使用但不序列化为元组样式?

转载 作者:行者123 更新时间:2023-11-30 05:46:00 28 4
gpt4 key购买 nike

我正在使用 Immutables,并将生成的类配置为通过构造函数实例化。

@Gson.TypeAdapters
@Value.Immutable(builder = false)
@Value.Style(
of = "new",
allParameters = true,
get = {"get*", "is*"})
public interface MyClass {
String getX();
boolean isGreen();
}

但是现在实例被序列化为元组,如https://immutables.github.io/json.html#tuples-of-constructor-arguments中指定的那样

    ["someValueOfX", true]

相反,我需要与使用构建器而不是构造函数时相同的序列化

    {
"x" : "someValueOfX",
"green" : true
}

是否可以禁用元组序列化?

最佳答案

看起来格式切换是您通过使用 builder=false 获得的有意副作用 - 来自链接:

In order to marshal object as tuple, you need to annotate constructor arguments and disable generation of builders

我同意将构建器的存在与序列化格式结合起来很尴尬,但这似乎是唯一的方法......因此获得所需序列化格式的最佳方法就是删除 builder=false

关于java - 如何将 Immutables 与公共(public)构造函数一起使用但不序列化为元组样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54833440/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com