/ / Dostęp do obiektu w ramach Lift Scala net.liftweb.util.Box obiekt - scala, scala-2.8, winda

Dostęp do obiektu w obiekcie Lift Scala net.liftweb.util.Box - scala, scala-2.8, lift

Mam obiekt net.liftweb.util.Box, który jest zwracany w wyniku wyszukiwania identyfikatora użytkownika. Obiekt pola zwraca coś takiego:

net.liftweb.util.Box[MyEntity{attributes}]

Jak mogę uzyskać dostęp do elementu w polu? W szczególności chcę uzyskać dostęp do atrybutów jednostki wewnątrz pola.

Odpowiedzi:

5 dla odpowiedzi № 1

Proszę zobaczyć http://lift.la/scala-option-lift-box-and-how-to-make-your-co

Dostęp do zawartości skrzynki można uzyskać za pomocą wywołania metody foreach / map. Na przykład, jeśli chcesz uzyskać nazwę od swojego podmiotu:

myBoxedEntity.map(_.name) openOr "No Name Provided"

Jeśli pole jest pełne, otrzymasz nazwę encji w inny sposób, otrzymasz wiadomość.


1 dla odpowiedzi nr 2

Jeśli chcesz wykonać jakąś operację na obiekcie, dmap jest pomocny.

Na przykład:

fooBox.dmap("Yo!")(foo =>
// dome some staff with foo
result // must be string
)

Możesz pobrać element bezpośrednio, wywołując fooBox.open_! ale nie jest zalecane. Często powoduje wyjątek zerowego wskaźnika, gdy pole jest puste.