Scala Obiekt opcji w innym obiekcie opcji
Mam model, który ma niektóre pola opcji, które zawierają inne pola opcji. Na przykład:
case class First(second: Option[Second], name: Option[String])
case class Second(third: Option[Third], title: Option[String])
case class Third(numberOfSmth: Option[Int])
Otrzymuję te dane z zewnętrznych JSON i czasami te dane mogą zawierać wartości zerowe, co było powodem takiego modelu.
Pytanie brzmi: jaki jest najlepszy sposób na uzyskanie najgłębszego pola?
First.get.second.get.third.get.numberOfSmth.get
Powyższa metoda wygląda naprawdę brzydko i może powodować wyjątek, jeśli jeden z obiektów będzie Brak. Szukałem w bibliotece Scalaz, ale nie znalazłem lepszego sposobu, aby to zrobić.
Jakieś pomysły? Z góry dziękuję.