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-static
w swojej klasie metodę, która nie jest konwencjonalna getter or setter
, możesz sprawić, by działała jak getter and setter
za 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 getIdAndUsername
zaczyna się od get
tego momentu, jest traktowana jako normalny getter, dlatego też można przypisać takie adnotacje @JsonIgnore
.
Jeśli zauważyłeś, że concatenateIdAndUsername
nie jest zwracany, a to dlatego, że jego nazwa nie zaczyna się od, get
a 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/setter
jak wspomniano w powyższej wyróżnionej dokumentacji .