我有一个带有自定义getter的对象,它基于构造函数参数实现业务逻辑,例如
// Constructor
Graph(int v)
{
V = v;
adj = new LinkedList<Integer>[v];
for (int i=0; i<v; ++i)
adj[i] = new LinkedList<Integer>();
}
序列化为class Test {
private int number;
Test(int number) {
this.number = number;
}
public boolean isEven() {
return number % 2 == 0;
}
}
我想反序列化此对象,以便创建一个基于序列化值返回isEven()的代理。使用杰克逊可以这样吗?
答案 0 :(得分:0)
如果我理解了这个问题,可以使用基于属性的静态@JsonCreator
方法:
public class Test {
private int number;
...
@JsonCreator
public static Test fromJson(@JsonProperty("even") Boolean isEven) {
return new Test(isEven ? 2 : 1);
}
}