嗨,我是泽西岛的新手,正在处理一段代码,其中定义的setter名称与其字段名称不同。我很困惑,如果这是允许的,并且实际上在通过http发送和接收json数据时工作。请有人请解释getter和setter如何在Jersey框架中实际工作。
public class TestValue{
private String myLists;
@JsonSafeHtml
public String getMyLists() {
return myLists;
}
@JsonSafeHtml
public void setMyList(String myLists) {
this.myLists = myLists;
}
}
答案 0 :(得分:2)
默认行为实际上是查看bean属性(getter和setter)。在这种情况下,该字段无关紧要。将它们命名为与方法相同只是一种约定。
getter用于序列化(java到json)。 get
将从方法中删除,后面的第一个字母是小写的。这将是生成的JSON属性名称。
getSomething() => { "something": "value" }
getAnotherThing() => { "anotherThing": "value" }
Setter用于 de 序列化(json到java)。 set
将被删除,而小写后的第一个字母将被删除。这是将被查找以与JSON属性匹配的方法名称。
{ "something": "value" } => setSomething(String somthing)
// The following leads to an error. It doen't follow the
// casing rule where the first letter is lowercased
{ "Something": "value" } => setSomething(String somthing)