Byłem zaskoczony metodą Optional.ofNullable
. Pewnego dnia napisałem funkcję, która powinna zwracać opcjonalny:Opcjonalne.Nałożenie i metoda łańcuchowa
private Optional<Integer> extractFirstValueFrom(InsightsResponse insight) {
return Optional.ofNullable(insight.getValues().get(0).getValue());
}
ja błędnie myśli, że Optional.ofNullable
zapobiegnie NullPointerExceptions
wewnątrz wyrazu argumentów.
Teraz myślę, że wiem, że to był bardzo głupi pomysł. Java musi najpierw rozwiązać argumenty, aby przekazać je do wywołania Optional.ofNullable
.
Ale mam pytanie. Czy istnieje dobry i dobry sposób na osiągnięcie mojego celu? Chciałbym uzyskać od wyrażenia insight.getValues().get(0).getValue()
niektóre wartości Integer lub null. Null może być każdym z wyrażeń: insight.getValues()
lub insight.getValues().get(0)
.
Wiem, że mogę to umieścić w bloku prób/catch, ale zastanawiam się, czy istnieje bardziej eleganckie rozwiązanie.
W twoim przypadku "wgląd" ma wartość null. Znacznie lepiej jest nigdy nie przekazywać wartości null do metod, niż sprawdzać, czy wewnątrz metody nie występują. –