Ich habe ein net.liftweb.util.Box-Objekt, das als Ergebnis einer Suche nach einer Benutzer-ID zurückgegeben wird. Das Boxobjekt gibt Folgendes zurück:
net.liftweb.util.Box[MyEntity{attributes}]
Wie kann ich auf die Entität innerhalb der Box zugreifen? Insbesondere möchte ich auf die Attribute der Entität innerhalb der Box zugreifen.
Antworten:
5 für die Antwort № 1Bitte sehen http://lift.la/scala-option-lift-box-and-how-to-make-your-co
Sie können auf den Inhalt einer Box innerhalb eines Aufrufs von foreach / map zugreifen. Wenn Sie beispielsweise den Namen aus Ihrer Entität abrufen möchten:
myBoxedEntity.map(_.name) openOr "No Name Provided"
Wenn das Feld voll ist, erhalten Sie den Entitätsnamen, andernfalls erhalten Sie die Nachricht.
1 für die Antwort № 2
Wenn Sie eine Operation am Objekt in Box dmap ausführen möchten, ist es hilfreich.
Beispielsweise:
fooBox.dmap("Yo!")(foo =>
// dome some staff with foo
result // must be string
)
Sie können das Element direkt abrufen, indem Sie fooBox.open_ aufrufen. Es wird jedoch nicht empfohlen. Es führt häufig zu einer Nullzeigerausnahme, wenn das Feld leer ist.