Я использую Optional<ObjectNode>
и извлекаю из него различные атрибуты с помощью потоков.
class MyCompany {
private Age age;
private Name name;
// getters and setters
}
myJSON
.map(jsonObj -> getAge(jsonObj, "age"))
.map(age -> new Age(age))
.ifPresent(myCompany::setAge);
myJSON
.map(jsonObj -> getName(jsonObj, "name"))
.map(name -> new Name(name))
.ifPresent(myCompany::setName);
public Integer getAge(ObjectNode jsonObj, String toGet) {
Integer value = null;
if (jsonObj(toGet)) {
value = jsonObj(toGet).intValue();
}
return value;
}
Теперь я хочу изменить MyCompany
, чтобы вместо него включить новый класс Person
и Person
должны включать имя и возрастные атрибуты. Как я могу использовать поток Java в одном выражении, чтобы сформулировать Person
из имени и возраста, а затем установить его в MyCompany
class Person {
private Age age;
private Name name;
// getters and setters
public void Person(Age age, Name name) {
this.name = name;
this.age = age;
}
}
class MyCompany {
private Person person;
//getters and setters for Person
}