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 № 1Proszę 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.