我正在使用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
}
是否可以禁用序列化到元组?
答案 0 :(得分:1)
格式切换似乎是您通过使用builder=false
-从链接获得的故意副作用:
为了将对象封送为元组,您需要注释构造函数参数并禁用生成器的生成
我同意将构建器的存在与序列化格式结合起来很尴尬,但这似乎是唯一的方法……因此,获得所需序列化格式的最佳方法就是删除builder=false
。