Несколько опционов, выбирайте лучше всего? [дублировать]JAVA

Программисты JAVA общаются здесь
Anonymous
Несколько опционов, выбирайте лучше всего? [дублировать]

Сообщение Anonymous »

У меня есть класс, который может содержать несколько дополнительных идентификаторов, класс выберет первый доступный и вернет его на вызывающего абонента. Что -то вроде ниже. < /P>
Optional
homePhone;
Optional mobilePhone;
Optional emergencyPhone;

Phone getBestPhone() {
return homePhone.map(p -> p)
.orElse(mobilePhone.map(p -> p)
.orElse(emergencyPhone.map(p -> p)
.orElseThrow(() -> new IllegalArgument("No valid phone")))));
}
< /code>
Я хотел бы использовать дополнительные методы, такие как Map и Orelse, но в этом случае это приводит к слишком много гнездования. Два других параметра псевдокода могут быть. < /P>
Phone getBestPhone() {
homePhone.ifPresent(p -> { return p; });
mobilePhone.ifPresent(p -> { return p; });
emergencyPhone.ifPresent(p -> { return p; });
throw new IllegalArgument("...");
}
< /code>
Phone getBestPhone() {
return FirstPresent(homePhone, mobilePhone, emergencyPhone);
}
< /code>
Are there any better ways that the existing method I have? I'm very tempted to avoid the nesting by doing vanilla isPresent() checks.


Подробнее здесь: https://stackoverflow.com/questions/652 ... -pick-best

Вернуться в «JAVA»