字段名称可以与泽西岛的setter和getter不同吗?

时间:2016-10-13 05:03:47

标签: java rest jersey

嗨,我是泽西岛的新手,正在处理一段代码,其中定义的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;
}

}

1 个答案:

答案 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)