Oprócz wszystkich powyższych odpowiedzi nie zapomnij o części dokumentacji, która mówi
Adnotacja znacznika, której można użyć do zdefiniowania metody niestatycznej jako „ustawiającej” lub „pobierającej” dla właściwości logicznej (w zależności od jej podpisu) lub niestatycznego pola obiektowego, które ma być używane (szeregowane, deserializowane) jako logiczne własność.
Jeśli masz non-staticw swojej klasie metodę, która nie jest konwencjonalna getter or setter, możesz sprawić, by działała jak getter and setterza pomocą adnotacji na niej. Zobacz przykład poniżej
public class Testing {
private Integer id;
private String username;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getIdAndUsername() {
return id + "." + username;
}
public String concatenateIdAndUsername() {
return id + "." + username;
}
}
Kiedy powyższy obiekt jest szeregowany, odpowiedź będzie zawierać
- nazwa użytkownika od
getUsername()
- ID z
getId()
- idAndUsername od
getIdAndUsername*
Ponieważ metoda getIdAndUsernamezaczyna się od gettego momentu, jest traktowana jako normalny getter, dlatego też można przypisać takie adnotacje @JsonIgnore.
Jeśli zauważyłeś, że concatenateIdAndUsernamenie jest zwracany, a to dlatego, że jego nazwa nie zaczyna się od, geta jeśli chcesz, aby wynik tej metody został uwzględniony w odpowiedzi, możesz go użyć @JsonProperty("...")i będzie traktowany jak normalnie, getter/setterjak wspomniano w powyższej wyróżnionej dokumentacji .