Привет Я пытался выяснить, как получить stateCode
из Places
объекта с помощью потока. Я использую lombok для анализа объекта json, который выглядит следующим образом:
{"post code": "90210", "country": "United States", "country abbreviation": "US", "places": [{"place name": "Beverly Hills", "longitude": "-118.4065", "state": "California", "state abbreviation": "CA", "latitude": "34.0901"}]}
Я создал класс для обработки объекта следующим образом:
@lombok.Value
public class ZipCode {
@JsonAlias("post code")
private final String postalCode;
private final Set<Places> places;
public ZipCode() {
this.postalCode = null;
this.places = null;
}
public ZipCode(String postalCode, Set<Places> places) {
this.postalCode = postalCode;
this.places = places;
}
@lombok.Value
private static class Places {
@JsonAlias("state abbreviation")
private final String stateCode;
}
}
Я думал, что если бы я использовал
ZipCode zip = getZipObject();
String stateCode = zip.getPlaces().stream().findFirst().toString();
, я бы смог получить stateCode
в виде строки. В моем примере stateCode
должен был быть "CA". Вместо этого я получаю Optional[ZipCode.Places(stateCode=NY)]
. Если бы кто-нибудь мог помочь мне с этим, я был бы признателен. Я держу класс ZipCode в отдельном классе. Я хотел бы сохранить это так. Большинство примеров, которые у меня есть. При использовании stream
, как правило, используется сам объект set. Я хочу избежать публичного доступа к моему Places
объекту.