-3
我有一个类,我们说Person
,我想使用Jackson填充JSON,但属性名称因源而异。这里的代码看起来目前:具有不同JSON属性名称的继承模型
class Person {
protected String firstName;
protected String lastName;
protected String address;
public abstract void setFirstName(String firstName);
public abstract void setLastName(String lastName);
public abstract void setAddress(String address);
// getters etc.
}
class PersonFormat1 extends Person {
@Override
@JsonProperty("firstName")
public void setFirstName(String firstName) {
this.firstName = firstName;
}
@Override
@JsonProperty("lastName")
public void setLastName(String lastName) {
this.lastName = lastName;
}
@Override("address")
public void setAddress(String address) {
this.address = address;
}
}
class PersonFormat2 extends Person {
@Override
@JsonProperty("fName")
public void setFirstName(String firstName) {
this.firstName = firstName;
}
@Override
@JsonProperty("lName")
public void setLastName(String lastName) {
this.lastName = lastName;
}
@Override("addr")
public void setAddress(String address) {
this.address = address;
}
}
正如你所看到的,PersonFormat1
和PersonFormat2
的结构相同,但我以指定不同的属性名称需要不同的子类。
有没有一种方法来强制模型没有重新声明和重新实现每种方法的样板?